Jit4OpenCL is a new compiler that converts scientific applications written in Python/NumPy into OpenCL code.
This compiler is based on unPython, an ahead-of-time compiler from Python/Numpy to an intermediate form and OpenMP code, and on jit4GPU, a just-in-time compiler that converts that intermediate code into AMD CAL code that is specific for AMD GPUs. The targeting of OpenCL provides a new evaluation point in the tradeoff between performance and portability for this type of application. Adapting the data access analysis to the OpenCL model was critical for the construction of this new compiler. An experimental evaluation compares the execution time of benchmarks compiled with jit4GPU and jit4OpenCL with highly optimized versions of the same benchmarks running on the CPU.