Leveraging LLVM OpenMP GPU Offload Optimizations for Kokkos Applications

OpenMP provides a cross-vendor API for GPU offload that can serve as an implementation layer under performance portability frameworks like the Kokkos C++ library. However, recent work identified some impediments to performance with this approach arising from limitations in the API or in the available implementations. Advanced programming concepts such as hierarchical parallelism and use of dynamic shared memory were a particular area of concern. In this paper, we apply recent improvements and extensions in the LLVM/Clang OpenMP compiler and runtime library to the Kokkos backend that targets GPUs via OpenMP offload. We focus on efficient hierarchical parallelism and use of fast GPU scratch memory. We compare the performance of applications written using the Kokkos library with this improved OpenMP backend against the same programs using the CUDA and HIP backends. This evaluation shows progress toward closing the performance gaps between native and OpenMP backends and offers insights that may be useful to users and implementers of other runtime systems and programming frameworks for GPUs.

Authors

Institutions

Publication Details

Published
2024-12-18
DOI
https://doi.org/10.1109/hipc62374.2024.00035
Citations
3
Primary Topic
Satellite Communication Systems
Type
article
Field-Weighted Citation Impact
3.90
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Leveraging LLVM OpenMP GPU Offload Optimizations for Kokkos Applications

Rahulkumar Gayatri, Eric Wright, Johannes Doerfert, Stephen L. Olivier et al.
3 citations
Satellite Communication Systems
3.90
article

Leveraging LLVM OpenMP GPU Offload Optimizations for Kokkos Applications

Rahulkumar Gayatri, Eric Wright, Johannes Doerfert, Stephen L. Olivier, Shilei Tian
article en
3 citations

Abstract

OpenMP provides a cross-vendor API for GPU offload that can serve as an implementation layer under performance portability frameworks like the Kokkos C++ library. However, recent work identified some impediments to performance with this approach arising from limitations in the API or in the available implementations. Advanced programming concepts such as hierarchical parallelism and use of dynamic shared memory were a particular area of concern. In this paper, we apply recent improvements and extensions in the LLVM/Clang OpenMP compiler and runtime library to the Kokkos backend that targets GPUs via OpenMP offload. We focus on efficient hierarchical parallelism and use of fast GPU scratch memory. We compare the performance of applications written using the Kokkos library with this improved OpenMP backend against the same programs using the CUDA and HIP backends. This evaluation shows progress toward closing the performance gaps between native and OpenMP backends and offers insights that may be useful to users and implementers of other runtime systems and programming frameworks for GPUs.

Lawrence Livermore National Laboratory (US), Lawrence Berkeley National Laboratory (US), Sandia National Laboratories (US), National Energy Research Scientific Computing Center (US), Stony Brook University (US)
Affordable and clean energy
Openalex Percentile: Top 6%
Satellite Communication Systems
3.90
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Leveraging LLVM OpenMP GPU Offload Optimizations for Kokkos Applications — Rahulkumar Gayatri, Eric Wright, et al. · (2024) | TGRS Research Map | TGRS