Platform-Aware Compilation of memory-intensive bitmap-processing algorithms (PAC)

High-tech systems such as wide format printers, radars, and health-care monitoring applications execute complex signal processing algorithms that are typically designed in a high-level language such as Matlab. To implement the signal processing algorithms efficiently in the final system, the functionality developed in Matlab must be translated to C code that is executed on the target platform which is typically a heterogeneous multi-core platform consisting of a general-purpose multi-core CPU (e.g., from ARM or Intel). These cores often contain SIMD (Single Instruction Multiple Data) and GPU (Graphics Processing Unit) extensions that allow the implementation to exploit data parallelism. In order to meet the real-time constraints, the resulting C code needs to be highly optimized for the target platform.

Unfortunately, modern compilers do not consider all these architectural details in their optimization passes. As a result, the optimization for a target platform is nowadays a mostly manual process. As a result, the relation between the functional Matlab code and the final C code gets lost. When changes are made to the Matlab code or when a new product needs to be developed, all optimization effort must be spent again. This is a time consuming, error-prone, and costly process. This project will address this problem and it will deliver novel code generation technology exploiting all the available parallelism of the target platform. It enables the development of portable signal-processing algorithms, without compromising implementation efficiency, thus greatly reducing the development and implementation time and effort.

More information?

No project website available.