论文标题
UPIR:朝着平行编程模型的统一并行中间表示设计
UPIR: Toward the Design of Unified Parallel Intermediate Representation for Parallel Programming Models
论文作者
论文摘要
异构计算体系结构的复杂性以及对生产和便携式并行应用程序开发的需求,使并行编程模型的演变变得比以前变得更加全面和复杂。增强传统的编译技术和软件基础架构是并行性的,已成为最近编译器开发的主要目标之一。在本文中,我们提出了用于多个并行编程模型的统一并行中间表示(UPIR)的设计,并为模型启用统一的编译器转换。 UPIR指定了三种常用的并行性模式(SPMD,数据和任务并行性),数据属性以及显式数据移动和内存管理以及并行编程中使用的同步操作。我们通过在玫瑰编译器中的原型实现以及在C/C ++和Fortran中统一IR来证明UPIR,用于统一将OpenACC代码和OpenACC代码降低到LLVM ruarime的转换,并将UPIR导出到LLVM MLIRIRIRIRIAR DIARECT。
The complexity of heterogeneous computing architectures, as well as the demand for productive and portable parallel application development, have driven the evolution of parallel programming models to become more comprehensive and complex than before. Enhancing the conventional compilation technologies and software infrastructure to be parallelism-aware has become one of the main goals of recent compiler development. In this paper, we propose the design of unified parallel intermediate representation (UPIR) for multiple parallel programming models and for enabling unified compiler transformation for the models. UPIR specifies three commonly used parallelism patterns (SPMD, data and task parallelism), data attributes and explicit data movement and memory management, and synchronization operations used in parallel programming. We demonstrate UPIR via a prototype implementation in the ROSE compiler for unifying IR for both OpenMP and OpenACC and in both C/C++ and Fortran, for unifying the transformation that lowers both OpenMP and OpenACC code to LLVM runtime, and for exporting UPIR to LLVM MLIR dialect.