arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2209.10643cs.DC
收藏

UPIR:面向并行程序设计模型的统一并行中间表示设计

UPIR: Toward the Design of Unified Parallel Intermediate Representation for Parallel Programming Models

Anjia Wang, Xinyao Yi, Yonghong Yan

摘要:

异构计算体系结构的复杂性,以及对高效和可移植并行应用程序开发的需求,推动了并行编程模型的发展,使其变得比以前更全面和复杂。增强传统编译技术和软件基础设施的并行意识已成为近年来编译器发展的主要目标之一。在本文中,我们提出了设计统一的并行中间表示(UPIR)的多个并行编程模型,并使统一的编译器转换的模型。UPIR规定了三种常用的并行模式(SPMD、数据和任务并行)、数据属性和显式数据移动和存储管理以及并行编程中使用的同步操作。我们通过在ROSE编译器中的原型实现来演示UPIR,用于统一OpenMP和OpenACC以及C/C++和Fortran中的IR,用于统一将OpenMP和OpenACC代码降低到LLVM运行时的转换,以及用于将UPIR导出到LLVM MLIR方言。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑