PLPFJun 10

nomp: A Framework for Building Domain Specific Compilers

arXiv:2606.12650v19.3
Predicted impact top 50% in PL · last 90 daysOriginality Incremental advance
AI Analysis

For GPU programmers, this framework offers a way to balance productivity, portability, and performance by enabling domain-specific compiler construction.

The paper introduces nomp, a framework for building domain-specific compilers that uses a pragma-based programming model and runtime to improve programmer productivity without sacrificing performance or portability. It demonstrates that domain-specific optimization patterns can be reused to achieve performance comparable to low-level models like CUDA.

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.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes