Alexandru-Emilian ȘUȘU
Data și ora: 2021-03-05 11:00
Locația: Microsoft Teams
Rezumat teză de doctorat: Accesează
These days we experience a very fertile moment for parallel computing, mostly due to advances in compiler technology, the maturation of mathematical formalisms for it and the popularization of hardware design. Compiling sequential C programs for Connex-S, a competitive, scalable and customizable, wide vector accelerator for intensive embedded applications with 32 to 4096 16-bit integer lanes and a limited capacity local scratchpad memory, is challenging. Our compiler toolchain uses the LLVM framework and targets OPINCAA, a JIT vector assembler and coordination C++ library for Connex-S accelerating computations for an arbitrary CPU. Therefore, we address in the compiler middle end aspects of efficient vectorization, communication, and synchronization. We perform quantitative static analysis of the program useful, among others, for the symbolic-size compiler memory allocator and the coordination mechanism of OPINCAA. We also discuss the LLVM back end for the Connex-S processor and the methodology to automatically generate instruction selection code for emulating efficiently arithmetic and logical operations for non-native types such as 32-bit integer and 16-bit floating-point. By using JIT vector assembling and by encoding the vector length of Connex-S as a parameter in the generated OPINCAA program, we achieve vector-length agnosticism to support execution on distinct embedded devices, such as several digital cameras with different resolutions, each equipped with custom-width Connex-S accelerators meant to save energy for the image processing kernels. Since Connex-S has a limited capacity local scratchpad memory of 256 KB normally, we present how we also use the PPCG C-to-C code generator to perform data tiling to minimize the total kernel execution time, subject to fitting larger program data in the local memory. We devise an accurate cost model for the Connex-S accelerator to choose optimal performance tile sizes at compile time. We successfully compile several simple benchmarks frequently used, for example, in high performance and computer vision embedded applications. We report speedup factors of up to 11.33 when running them on a Connex-S accelerator with 128 16-bit integer lanes w.r.t. the dual-core ARM Cortex A9 host clocked at a frequency 6.67 times higher, with a total of two 128-bit Neon SIMD units. At the end of the thesis, we also propose a simple mathematical way to specify all useful computer vision transformations available for example in the well-known OpenCV library. We employ a Design Specification Language similar to the well-known Halide and present a novel way to implement efficiently computer vision transformations of a complex modern vision pipeline with sparse matrices. The resulting code uses the sequential CSparse library and achieves an average performance improvement of 8.32 times on one x86 CPU core at 2.66 GHz. We also write manually assembler code implementing such computer vision transformations with sparse matrices for our Connex-S vector processor.

Conducător de doctorat

Prof. dr. ing. Gheorghe M. ȘTEFAN, Universitatea Politehnica București, România.

Comisie de doctorat

Prof. dr. ing. Gheorghe BREZEANU, Universitatea Politehnica București, România
Prof. dr. ing. Ștefan TRĂUȘAN-MATU, Universitatea Politehnica București, România
Prof. dr. ing. Gheorghe ȘTEFĂNESCU, Universitatea din București, România
Dr. ing. Albert COHEN, École Normale Supérieure Paris, INRIA, Google, Franța.

Comisie de îndrumare

Conf. dr. ing. Zoltan HASCI, Universitatea Politehnica București, România
Ș.l. dr. ing. Călin BÎRĂ, Universitatea Politehnica București, România
Ș.l. dr. ing. Radu HOBINCU, Universitatea Politehnica București, România.