Summary: | 碩士 === 國立交通大學 === 資訊科學與工程研究所 === 99 === Heterogeneous multiprocessor platforms have become trends due to the need for high-performance systems. However, it is harder to program them than homogeneous multiprocessor platforms and there are various heterogeneous multiprocessor platforms in the world. Although newly-released OpenCL (Open Computing Language) standard from Khronos Group offers improves portability among heterogeneous multiprocessor platforms, programming such platforms using OpenCL is still complex and error-prone. In this thesis, we have designed and implemented a translator, called OMP2OCL Translator, which is for automatic source-to-source translation of OpenMP programs into OpenCL programs, in addition, we have reused and modified if necessary the optimizations from the related work to improve the OpenCL programs output from OMP2OCL translator. The translator identifies kernel regions of OpenMP programs, transforms and outlines the regions into OpenCL kernel functions, and does some optimization to improve the performance of the translated OpenCL programs. Moreover, we have compared the CUDA programs and the OpenCL programs output from the related work and OMP2OCL translator, respectively. Although there are performance losses for OMP2OCL translator compared to the related work designed dedicatedly for NVIDIA GPUs, it is still promising that the translated OpenCL programs can use other devices as compute devices other than NVIDIA GPUs.
|