High-level Programming of Vulkan-based GPUs Through OpenMP

Read full text
Authors: Ilias K. Kasmeridis, Vassilios V. Dimakopoulos
Cited by: 0
References: 11

Abstract

Abstract Modern applications often involve complex, structured or data-parallel computations on large datasets. Traditionally, GPUs have served as the primary accelerators for such tasks, mostly through compute-focused models like CUDA and OpenCL. Vulkan is a more recent cross-platform API, widely adopted for both high-performance graphics and compute. These models require lower-level programming, as developers have to be aware of architectural details; this is not easily accomplished given the dramatic rise in hardware heterogeneity. It has thus become increasingly desirable to adopt higher-level models that abstract away the low-level hardware and API details, and simplify GPU programming. In this paper we present a full-fledged OpenMP translator and runtime offloading infrastructure that targets the Vulkan Compute pipeline. While previous works usually focus on OpenCL or CUDA, this is the first time an OpenMP compiler targets Vulkan shaders. As such, apart from the support for off-the-shelf NVIDIA and AMD GPUs, we are the first to provide OpenMP support for mobile and embedded GPUs, such as VideoCore GPUs. The proposed translator, which is based on an open-source compilation framework, receives standard OpenMP code and converts it to tunable Vulkan shaders. Our approach preserves the simplicity of higher-level programming, while still achieving high performance, as demonstrated by our experimental results.

Fields of Study & Subjects

Parallel Computing and Optimization Techniques Computer Graphics and Visualization Techniques Embedded Systems Design Techniques

Publication details

Journal / source
International Journal of Parallel Programming
Volume
54
Issue
1-2
Publication date
12 March 2026
Language
EN