OpenCL-based design methodology for application-specific processors
Dept. of Comput. Syst., Tampere Univ. of Technol., Tampere, Finland
Embedded Computer Systems (SAMOS), 2010 International Conference on
@conference{jaaskelainen2010opencl,
title={OpenCL-based design methodology for application-specific processors},
author={Jaaskelainen, PO and de La Lama, CS and Huerta, P. and Takala, J.H.},
booktitle={Embedded Computer Systems (SAMOS), 2010 International Conference on},
pages={223–230},
organization={IEEE}
}
OpenCL is a programming language standard which enables the programmer to express the application by structuring its computation as kernels. The OpenCL compiler is given the explicit freedom to parallelize the execution of kernel instances at all the levels of parallelism. In comparison to the traditional C programming language which is sequential in nature, OpenCL enables higher utilization of parallelism naturally available in hardware constructs while still having a feasible learning curve for engineers familiar with the C language. This paper describes methodology and compiler techniques involved in applying OpenCL as an input language for a design flow of application-specific processors. At the core of the methodology is a whole program optimizing compiler that links together the host and kernel codes of the input OpenCL program and parallelizes the result on a customized statically scheduled processor. The OpenCL vendor extension mechanism is used to provide clean access to custom operations. The methodology is studied with a design case to verify the scalability of the implementation at the instruction level and to exemplify the use of custom operations. The case shows that the use of OpenCL allows producing scalable application-specific processor designs and makes it possible to gradually reach the performance of hand-tailored RTL designs by exploiting the OpenCL extension mechanism to access custom hardware operations of varying complexity.
March 30, 2011 by hgpu