Bridging OpenCL and CUDA: A Comparative Analysis and Translation
Department of Computer Science and Engineering, Seoul National University, Seoul, Korea
International Conference for High Performance Computing, Networking, Storage and Analysis (SC ’15), 2015
@inproceedings{kim2015bridging,
title={Bridging OpenCL and CUDA: a comparative analysis and translation},
author={Kim, Junghyun and Dao, Thanh Tuan and Jung, Jaehoon and Joo, Jinyoung and Lee, Jaejin},
booktitle={Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
pages={82},
year={2015},
organization={ACM}
}
Heterogeneous systems are widening their user-base, and heterogeneous computing is becoming popular in supercomputing. Among others, OpenCL and CUDA are the most popular programming models for heterogeneous systems. Although OpenCL inherited many features from CUDA and they have almost the same platform model, they are not compatible with each other. In this paper, we present similarities and differences between them and propose an automatic translation framework for both OpenCL to CUDA and CUDA to OpenCL. We describe features that make it difficult to translate from one to the other and provide our solution. We show that our translator achieves comparable performance between the original and target applications in both directions. Since each programming model separately has a wide user-base and large code-base, our translation framework is useful to extend the code-base for each programming model and unifies the efforts to develop applications for heterogeneous systems.
December 1, 2015 by hgpu