CuPBoP: Making CUDA a Portable Language
Georgia Institute of Technology, Atlanta, USA
ACM Transactions on Design Automation of Electronic Systems, 2024
DOI:10.1145/3659949
@article{hancupbop,
title={CuPBoP: Making CUDA a Portable Language},
author={Han, Ruobing and Chen, Jun and Garg, Bhanu and Zhou, Xule and Lu, John and Young, Jeffrey and Sim, Jaewoong and Kim, Hyesoon},
journal={ACM Transactions on Design Automation of Electronic Systems},
publisher={ACM New York, NY}
}
CUDA is designed speciically for NVIDIA GPUs and is not compatible with non-NVIDIA devices. Enabling CUDA execution on alternative backends could greatly beneit 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 ofers 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 diferences 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 ield, we have released CuPBoP as an open-source resource.
May 12, 2024 by hgpu