Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

High-level Programming of Vulkan-based GPUs Through OpenMP

View through CrossRef
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.
Title: High-level Programming of Vulkan-based GPUs Through OpenMP
Description:
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.

Related Results

High-level compiler analysis for OpenMP
High-level compiler analysis for OpenMP
Nowadays, applications from dissimilar domains, such as high-performance computing and high-integrity systems, require levels of performance that can only be achieved by means of s...
Towards a safe and efficient OpenMP
Towards a safe and efficient OpenMP
(English) The growing complexity of contemporary multi-core and heterogeneous architectures necessitates parallel programming models capable of efficiently leveraging the available...
Automatic Parallelization for Heterogeneous Embedded Systems
Automatic Parallelization for Heterogeneous Embedded Systems
Parallélisation automatique pour systèmes hétérogènes embarqués L'utilisation d'architectures hétérogènes, combinant des processeurs multicoeurs avec des accélérate...
An Analysis of Programmer Productivity versus Performance for High Level Data Parallel Programming
An Analysis of Programmer Productivity versus Performance for High Level Data Parallel Programming
Data parallel programming provides an accessible model for exploiting the power of parallel computing elements without resorting to the explicit use of low level programming techni...
Programming model abstractions for optimizing I/O intensive applications
Programming model abstractions for optimizing I/O intensive applications
This thesis contributes from the perspective of task-based programming models to the efforts of optimizing I/O intensive applications. Throughout this thesis, we propose programmin...
Scheduler guided OpenMP execution in cloud VMs
Scheduler guided OpenMP execution in cloud VMs
Exécution OpenMP guidée par le ordonnanceur dans les machines virtuelles cloud OpenMP est un cadre largement utilisé pour paralléliser les applications, permettant ...
Efficient Parallel Linked List Processing
Efficient Parallel Linked List Processing
OpenMP is a very popular and successful parallel programming API, but efficient parallel traversal of a list (of possibly unknown size) of items linked by pointers is a challenging...
GenASiS Basics: Object-oriented utilitarian functionality for large-scale physics simulations
GenASiS Basics: Object-oriented utilitarian functionality for large-scale physics simulations
GenASiS Basics provides modern Fortran classes furnishing extensible object-oriented utilitarian functionality for large-scale physics simulations on distributed memory supercomput...

Back to Top