nomp: A Framework for Building Domain Specific Compilers

📅 2026-06-10
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
This work addresses the longstanding challenge in GPU programming of simultaneously achieving high productivity, portability, and performance: low-level models offer high performance but suffer from poor developer productivity, while high-level abstractions improve productivity at the cost of performance. To bridge this gap, the paper proposes nomp, a novel framework that integrates a pragma-based programming model with a metadata-driven runtime system to enable domain-specific code transformation and generation. By incorporating domain-specific optimization patterns, nomp significantly enhances programming productivity while preserving high performance and cross-platform portability, effectively reconciling the trade-offs between low-level efficiency and high-level abstraction in GPU programming.
📝 Abstract
The low-level GPU programming models (CUDA, HIP, OpenCL, etc.) provide detailed control of the data flow and execution plan of a program in order to extract close-to-metal performance. However, these have a steep learning curve due to the intricacies of their syntax and semantics. This reduces programmer productivity. On the other hand, high-level models (OpenMP, OpenACC, etc.) that serve as abstractions over the low-level models are aimed at improving programmer productivity but achieving performance on-par with the low-level models is a challenge. There are inherent trade-offs between productivity, portability and performance in both approaches and there is no one-size-fits-all solution which achieves all three simultaneously. However, we believe there is room to improve programmer productivity without sacrificing performance and portability by reusing optimization patterns specific to a given domain. To this end, we propose nomp: a framework for building domain specific compilers. nomp consists of a pragma based programming model and a runtime capable of code transformation and generation based on user provided metadata.
Problem

Research questions and friction points this paper is trying to address.

GPU programming
programmer productivity
performance-portability trade-off
domain-specific compilation
compiler framework
Innovation

Methods, ideas, or system contributions that make the work stand out.

domain-specific compiler
pragma-based programming
code transformation
GPU optimization
metadata-driven compilation
🔎 Similar Papers
2024-04-02International Conference on Architectural Support for Programming Languages and Operating SystemsCitations: 4
T
Thilina Ratnayaka
Department of Computer Science, University of Illinois, Urbana, IL 61801; Argonne National Laboratory, Lemont, IL 60439
Kaushik Kulkarni
Kaushik Kulkarni
University of Illinois at Urbana-Champaign
Scientific ComputingHPCCompilers
N
Nipuna Fernando
Department of Computer Science, University of Moratuwa, Katubedda 10400
P
Pubudu Hewavitharana
Department of Computer Science, University of Moratuwa, Katubedda 10400
H
Hirumal Priyashan
Department of Computer Science, University of Moratuwa, Katubedda 10400
P
Poorna Gunathilaka
Department of Computer Science, University of Moratuwa, Katubedda 10400
N
Nagitha Abeywickrema
Department of Computer Science, University of Moratuwa, Katubedda 10400
R
Ravindu Hirimuthugoda
Department of Computer Science, University of Moratuwa, Katubedda 10400
T
Tarun Prabhu
Los Alamos National Laboratory, Los Alamos, NM 87545
Kirshanthan Sundararajah
Kirshanthan Sundararajah
Assistant Professor of Computer Science, Virginia Tech
CompilersProgramming LanguagesHigh Performance Computing
Sanath Jayasena
Sanath Jayasena
Associate Professor, Dept of Computer Science & Engineering, University of Moratuwa
High-performance computingparallel computingmachine learningnatural language processing