Wide cross-vendor support for the OpenMP API makes it appealing for portable parallel programming on CPUs and GPUs. While its use on CPUs is well-established, perceived or actual performance gaps relative to native APIs like CUDA and HIP have limited its adoption on GPUs. Previous work has shown that for simple parallel patterns such as single level loops, recent OpenMP implementations can be competitive in terms of performance against those native APIs. For more complex use cases, such as hierarchical parallelism, extensions to OpenMP have been necessary to attain the performance of those native APIs on discrete GPUs like the AMD Instinct™ MI250X and NVIDIA A100. In this paper, we evaluate and extend the use of these extensions in the Kokkos C++ performance portability framework on newer converged CPU-GPU architectures, the AMD Instinct™ MI300A and NVIDIA GH200. Our results show that the extensions help bridge performance gaps between native API and OpenMP in these architectures, and we identify areas that still have room for improvement.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Evaluating LLVM OpenMP Offload Optimizations on NVIDIA GH200 Grace Hopper Superchip and AMD Instinct™ MI300A Accelerator Architectures

  • Kevin Sala,
  • Stephen L. Olivier,
  • Rahulkumar Gayatri,
  • Shilei Tian,
  • Johannes Doerfert

摘要

Wide cross-vendor support for the OpenMP API makes it appealing for portable parallel programming on CPUs and GPUs. While its use on CPUs is well-established, perceived or actual performance gaps relative to native APIs like CUDA and HIP have limited its adoption on GPUs. Previous work has shown that for simple parallel patterns such as single level loops, recent OpenMP implementations can be competitive in terms of performance against those native APIs. For more complex use cases, such as hierarchical parallelism, extensions to OpenMP have been necessary to attain the performance of those native APIs on discrete GPUs like the AMD Instinct™ MI250X and NVIDIA A100. In this paper, we evaluate and extend the use of these extensions in the Kokkos C++ performance portability framework on newer converged CPU-GPU architectures, the AMD Instinct™ MI300A and NVIDIA GH200. Our results show that the extensions help bridge performance gaps between native API and OpenMP in these architectures, and we identify areas that still have room for improvement.