TL;DR
This paper introduces Solomon, a header-only library that unifies GPU offloading interfaces for OpenACC and OpenMP target, simplifying development and broadening compatibility across GPU architectures.
Contribution
The paper presents Solomon, a novel unified interface for directive-based GPU offloading supporting both OpenACC and OpenMP target, reducing implementation complexity and learning curve.
Findings
Successfully implemented GPU offloading in N-body simulation and diffusion equation
Solomon reduces code complexity and improves portability across GPU platforms
Open-source availability facilitates adoption and further development
Abstract
GPU is the dominant accelerator device due to its high performance and energy efficiency. Directive-based GPU offloading using OpenACC or OpenMP target is a convenient way to port existing codes originally developed for multicore CPUs. Although OpenACC and OpenMP target provide similar features, both methods have pros and cons. OpenACC has better functions and an abundance of documents, but it is virtually for NVIDIA GPUs. OpenMP target supports NVIDIA/AMD/Intel GPUs but has fewer functions than OpenACC. Here, we have developed a header-only library, Solomon (Simple Off-LOading Macros Orchestrating multiple Notations), to unify the interface for GPU offloading with the support of both OpenACC and OpenMP target. Solomon provides three types of notations to reduce users' implementation and learning costs: intuitive notation for beginners and OpenACC/OpenMP-like notations for experienced…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
