OpenMP Kernel Language Extensions for Performance Portable GPU Codes
Stony Brook University, Stony Brook, NY, USA
Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC), 2023
@article{tian2023openmp,
title={OpenMP Kernel Language Extensions for Performance Portable GPU Codes},
author={Tian, Shilei and Scogland, Tom and Chapman, Barbara and Doerfert, Johannes},
year={2023}
}
In contemporary high-performance computing architectures, the integration of GPU accelerators has become increasingly prevalent. To harness the full potential of these accelerators, developers often resort to vendor-specific kernel languages, such as CUDA. While this approach ensures optimal efficiency, it inherently compromises portability and engenders vendor dependency. Existing portable programming models, such as OpenMP, while promising, demand extensive code rewriting due to their fundamental difference from kernel languages. In this work, we introduce extensions to LLVM OpenMP, transforming it into a versatile and performance portable kernel language for GPU programming. These extensions allow for the seamless porting of programs from kernel languages to high-performance OpenMP GPU programs with minimal modifications. To evaluate our extension, we implemented a proof-of-concept prototype that contains a subset of extensions we proposed. We ported six established CUDA proxy and benchmark applications and evaluated their performance on both AMD and NVIDIA platforms. By comparing with native versions (HIP and CUDA), our results show that OpenMP, augmented with our extensions, can not only match but also in some cases exceed the performance of kernel languages, thereby offering performance portability with minimal effort from application developers.
October 1, 2023 by hgpu