The TRegion Interface and Compiler Optimizations for OPENMP Target Regions

被引:8
|
作者
Doerfert, Johannes [1 ]
Diaz, Jose Manuel Monsalve [1 ]
Finkel, Hal [1 ]
机构
[1] Argonne Natl Lab, Argonne Leadership Comp Facil, Argonne, IL 60439 USA
关键词
Compiler optimizations; GPU; Accelerator offloading;
D O I
10.1007/978-3-030-28596-8_11
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
OPENMP is a well established, single-source programming language extension to introduce parallelism into (historically) sequential base languages, namely C/C++ and Fortran. To program not only multi-core CPUs but also many-cores and heavily parallel accelerators, OPENMP 4.0 adopted a flexible offloading scheme inspired by the hierarchy in many GPU designs. The flexible design of the offloading scheme allows to use it in various application scenarios. However, it may also result in a significant performance loss, especially because OPENMP semantics is traditionally interpreted solely in the language front-end as a way to avoid problems with the "sequential-execution-minded" optimization pipeline. Given the limited analysis and transformation capabilities in a modern compiler front-end, the actual syntax used for OPENMP offloading can substantially impact the observed performance. The compiler front-end will always have to favor correct but overly conservative code, if certain facts are not syntactically obvious. \ In this work, we investigate how we can delay (target specific) implementation decisions currently taken early during the compilation of OPENMP offloading code. We prototyped our solution in LLVM/Clang, an industrial strength OPENMP compiler, to show that we can use semantic source code analyses as a rational instead of relying on the user provided syntax. Our preliminary results on the rather simple Rodinia benchmarks already show speedups of up to 1.55x.
引用
收藏
页码:153 / 167
页数:15
相关论文
共 50 条
  • [1] Compiler Optimizations for OpenMP
    Doerfert, Johannes
    Finkel, Hal
    EVOLVING OPENMP FOR EVOLVING ARCHITECTURES, 2018, 11128 : 113 - 127
  • [2] Exploiting Global Optimizations for OpenMP Programs in the OpenUH Compiler
    Huang, Lei
    Eachempati, Deepak
    Hervey, Marcus W.
    Chapman, Barbara
    ACM SIGPLAN NOTICES, 2009, 44 (04) : 289 - 290
  • [3] Performance instrumentation and compiler optimizations for MPI/OpenMP applications
    Hernandez, Oscar
    Song, Fengguang
    Chapman, Barbara
    Dongarra, Jack
    Mohr, Bernd
    Moore, Shirley
    Wolf, Felix
    OPENMP SHARED MEMORY PARALLEL PROGRAMMING, PROCEEDINGS, 2008, 4315 : 267 - +
  • [4] COMPILER OPTIMIZATIONS FOR THE WAM
    TURK, AK
    LECTURE NOTES IN COMPUTER SCIENCE, 1986, 225 : 657 - 662
  • [5] ORC-OpenMP: An OpenMP compiler based on ORC
    Chen, YJ
    Li, JJ
    Wang, SY
    Wang, DX
    COMPUTATIONAL SCIENCE - ICCS 2004, PT 3, PROCEEDINGS, 2004, 3038 : 414 - 423
  • [6] Multilayer Multipurpose Caches for OpenMP Target Regions on FPGAs
    Brandner, Julian
    Mayer, Florian
    Philippsen, Michael
    ADVANCING OPENMP FOR FUTURE ACCELERATORS, IWOMP 2024, 2024, 15195 : 79 - 93
  • [7] Phase Directed Compiler Optimizations
    Jain, Era
    Roy, Subhajit
    PROCEEDINGS OF 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING (HIPC), 2016, : 270 - 279
  • [8] Detection of Optimizations Missed by the Compiler
    Zhang, Yi
    PROCEEDINGS OF THE 31ST ACM JOINT MEETING EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, ESEC/FSE 2023, 2023, : 2192 - 2194
  • [9] Incremental Verification of Compiler Optimizations
    Fedyukovich, Grigory
    Gurfinkel, Arie
    Sharygina, Natasha
    NASA FORMAL METHODS, NFM 2014, 2014, 8430 : 300 - 306
  • [10] GRAPHICAL VISUALIZATION OF COMPILER OPTIMIZATIONS
    BOYD, MR
    WHALLEY, DB
    JOURNAL OF PROGRAMMING LANGUAGES, 1995, 3 (02): : 69 - 94