Optimization and Generation of OpenCL Code for Embedded Computing

Luı́s A. Alexandre, Cubal dos Reis · 2014

Multicore heterogeneous architectures are spreading from desktop computers to mobile and em-bedded systems. In order to take advantage of those multicore architectures, sequential computa-tions might need to be replaced by their parallel counterparts. Programmers typically develop and validate sequential applications using high-level program-ing languages such as MATLAB and later manually migrate bottlenecked code sections to lower-level parallel languages such as CUDA and OpenCL. This process is time consuming and error prone. Thus, automatic source-to-source approaches are highly desirable, even when there is a considerable slowdown compared to the manual porting process. We present a tool able to compile code sections of MATLAB and output equivalent OpenCL. The generated code can be executed on GPU architectures and hardware accelerators. Our tool is based on an existing framework named MATISSE, which generates C code from MATLAB source code. The OpenCL generation relies on the manual insertion of directives to guide the compilation and is capable of generating C wrapper code to interface and synchronize with the OpenCL code. We evaluated our compiler with various benchmarks and domains and we have

Read the paper · More papers on PaperTik