IGC: The Open Source Intel Graphics Compiler

被引:0
|
作者
Chandrasekhar, Anupama [1 ]
Chen, Gang [1 ]
Chen, Po-Yu [1 ]
Chen, Wei-Yu [1 ]
Gu, Junjie [1 ]
Guo, Peng [1 ]
Kumar, Shruthi Hebbur Prasanna [1 ]
Lueh, Guei-Yuan [1 ]
Mistry, Pankaj [1 ]
Pan, Wei [1 ]
Raoux, Thomas [1 ]
Trifunovic, Konrad [2 ]
机构
[1] Intel Corp, Santa Clara, CA 95054 USA
[2] Intel Corp, Gdansk, Poland
关键词
D O I
10.1109/cgo.2019.8661189
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
With increasing general purpose programming capability, GPUs have become the mainstay for a wide variety of compute intensive tasks from cloud to edge computing. Because of its availability on nearly every desktop and mobile processor that Intel ships, Intel integrated GPU offers a plethora of opportunities for researchers and application developers to make significant real-world impact. In this paper we present the Intel Graphics Compiler (IGC), the LLVM-based production compiler for Intel HD and Iris graphics. IGC supports all major graphics and compute APIs, and its OpenCL compute stack including compute runtime, compiler frontend and backend, and architecture specification is fully open-source, giving a unique opportunity for developers to optimize the entire stack. We highlight several custom optimizations that address the challenges for GPU compilation. Examples include SIMD size selection, divergence analysis, instruction scheduling, addressing mode selection, and redundant copy elimination. These optimizations take advantage of features in the Intel GPU architecture such as a larger register file, indirect register addressing, and multiple memory addressing modes. Experimental results show that our optimizations deliver significant speedup on a number of OpenCL benchmarks; compared to the baseline, we see a geometric mean of 12% speed up across benchmarks with a peak gain of 45%.
引用
收藏
页码:254 / 265
页数:12
相关论文
共 50 条
  • [1] Optimizing open-source software for intel architectures - Aggressive compiler optimization is the first step for improving performance
    Domeika, Max
    Singh, Harry
    DR DOBBS JOURNAL, 2006, 31 (12): : 49 - +
  • [2] An Open-Source RRAM Compiler
    Antoniadis, Dimitris
    Mifsud, Andrea
    Feng, Peilong
    Constandinou, Timothy G.
    2022 20TH IEEE INTERREGIONAL NEWCAS CONFERENCE (NEWCAS), 2022, : 465 - 469
  • [3] Compiler Practice System Integrated with Real Open Source Compiler
    Zhang, Yu
    SIGCSE'18: PROCEEDINGS OF THE 49TH ACM TECHNICAL SYMPOSIUM ON COMPUTER SCIENCE EDUCATION, 2018, : 1091 - 1091
  • [4] gpucc: An Open-Source GPGPU Compiler
    Wu, Jingyue
    Belevich, Artem
    Bendersky, Eli
    Heffernan, Mark
    Leary, Chris
    Pienaar, Jacques
    Roune, Bjarke
    Springer, Rob
    Weng, Xuetian
    Hundt, Robert
    PROCEEDINGS OF CGO 2016: THE 14TH INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION, 2016, : 105 - 116
  • [5] An extensible open-source compiler infrastructure for testing
    Quinlan, Dan
    Ur, Shmuel
    Vuduc, Richard
    HARDWARE AND SOFTWARE VERIFICATION AND TESTING, 2006, 3875 : 116 - 133
  • [6] APmap: An Open-Source Compiler for Automata Processors
    Yu, Jintao
    Abu Lebdeh, Muath
    Anh Du Nguyen, Hoang
    Taouil, Mottaqiallah
    Hamdioui, Said
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2022, 41 (01) : 196 - 200
  • [7] ChemoJun: Open Source Chemical Graphics Library
    Satoh, Hiroko
    Aoki, Atsushi
    Asaoka, Hiroko
    JOURNAL OF COMPUTER AIDED CHEMISTRY, 2006, 7 : 141 - 149
  • [8] The Intel Labs Haskell Research Compiler
    Liu, Hai
    Glew, Neal
    Petersen, Leaf
    Anderson, Todd A.
    ACM SIGPLAN NOTICES, 2013, 48 (12) : 105 - 116
  • [9] OpenRAM: An Open-Source Memory Compiler Invited Paper
    Guthaus, Matthew R.
    Stine, James E.
    Ataei, Samira
    Chen, Brian
    Wu, Bin
    Sarwar, Mehedi
    2016 IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER-AIDED DESIGN (ICCAD), 2016,
  • [10] Exploring Source-to-Source Compiler Transformation of OpenMP SIMD Constructs for Intel AVX and Arm SVE Vector Architectures
    Flynn, Patrick
    Yi, Xinyao
    Yan, Yonghong
    PROCEEDINGS OF THE THIRTEENTH INTERNATIONAL WORKSHOP ON PROGRAMMING MODELS AND APPLICATIONS FOR MULTICORES AND MANYCORES (PMAM '22), 2022, : 11 - 20