Search papers, labs, and topics across Lattice.
This study evaluates the performance of OpenMP Offloading for intra-node multi-GPU programming across NVIDIA, AMD, and Intel architectures using a 3D heat transfer case study. By systematically analyzing various implementations, the authors reveal that OpenMP Offloading can achieve performance improvements of approximately 2x with 2 GPUs and around 4x with 4 GPUs compared to single-GPU implementations. These findings highlight the potential of OpenMP Offloading to effectively utilize multiple GPUs within a single compute node, addressing both computational and communication challenges in scientific applications.
OpenMP Offloading can deliver up to 4x performance gains in multi-GPU setups, outperforming traditional single-GPU implementations across major architectures.
Currently, most supercomputers are equipped with GPUs from manufacturers such as NVIDIA, AMD, or Intel, which provide substantial parallelism and high throughput. It is common for a single compute node (intra-node) to host multiple GPUs, typically four or more. Therefore, effectively leveraging all these GPUs within a single compute node is essential for applications in scientific and engineering domains. However, several factors must be considered before utilizing these GPUs for scientific computing, including the implementation of data communication, the programming models available for use across these GPUs, and the level of performance that can be achieved with a single codebase across different GPU architectures and configurations within a single compute node. OpenMP Offloading is a prominent directive-based programming model that can be executed on all three GPU types: NVIDIA, AMD, and Intel. In this research, we present an analysis of the benefits and performance challenges of using OpenMP Offloading to address the 3D heat equations, which involve both primary computation, as well as halo computation and communication. We investigate how performance varies in relation to native GPU programming models--CUDA for NVIDIA, HIP for AMD, and SYCL for Intel. Furthermore, we demonstrate that OpenMP Offloading can achieve performance improvements of approximately 2x for 2 GPUs and around 4x for 4 GPUs when compared to single-GPU OpenMP Offloading implementations across all three GPU types. This analysis is conducted systematically through various OpenMP Offloading implementations that utilize different low-level APIs for memory allocation, memory transfer options (synchronous, asynchronous, and peer-to-peer), and other native GPU programming models such as CUDA (NVIDIA), HIP (AMD), and SYCL (Intel)