Affiliation:
1. Georgia Institute of Technology, Atlanta, United States
2. Seoul National University, Gwanak-gu, Korea (the Republic of)
Abstract
CUDA is designed specifically for NVIDIA GPUs and is not compatible with non-NVIDIA devices. Enabling CUDA execution on alternative backends could greatly benefit the hardware community by fostering a more diverse software ecosystem.
To address the need for portability, our objective is to develop a framework that meets key requirements, such as extensive coverage, comprehensive end-to-end support, superior performance, and hardware scalability. Existing solutions that translate CUDA source code into other high-level languages, however, fall short of these goals.
In contrast to these source-to-source approaches, we present a novel framework, CuPBoP , which treats CUDA as a portable language in its own right. Compared to two commercial source-to-source solutions, CuPBoP offers a broader coverage and superior performance for the CUDA-to-CPU migration. Additionally, we evaluate the performance of CuPBoP against manually optimized CPU programs, highlighting the differences between CPU programs derived from CUDA and those that are manually optimized.
Furthermore, we demonstrate the hardware scalability of CuPBoP by showcasing its successful migration of CUDA to AMD GPUs.
To promote further research in this field, we have released CuPBoP as an open-source resource.
Funder
National Science Foundation
Ministry of Science and ICT under the ITRC support program
Publisher
Association for Computing Machinery (ACM)
Reference69 articles.
1. Michal Babej and Pekka Jääskeläinen. 2020. chipStar. Retrieved from https://github.com/CHIP-SPV/chipStar
2. NVIDIA. 2008. Compiling and Executing CUDA Programs in Emulation Mode. Retrieved from https://developer.nvidia.com/cuda-toolkit
3. Intel. 2019. Introduction to the oneAPI Level Zero Interface. Retrieved from https://www.intel.com/content/www/us/en/developer/articles/technical/using-oneapi-level-zero-interface.html
4. 2020. CloverLeaf. Retrieved from DOI:https://github.com/UK-MAC/CloverLeaf
5. 2020. DPCT. Retrieved from DOI:https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compatibility-tool.html