Directive-Based Parallelization of For-Loops at LLVM IR Level

被引:0
|
作者
Jingu, Kengo [1 ]
Shigenobu, Kohta [1 ]
Ootsu, Kanemitsu [1 ]
Ohkawa, Takeshi [1 ]
Yokota, Takashi [1 ]
机构
[1] Utsunomiya Univ, Grad Sch Engn, Utsunomiya, Tochigi, Japan
来源
2019 20TH IEEE/ACIS INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, ARTIFICIAL INTELLIGENCE, NETWORKING AND PARALLEL/DISTRIBUTED COMPUTING (SNPD) | 2019年
关键词
LLVM; loop parallelization; IR code; parallelization directives;
D O I
10.1109/snpd.2019.8935667
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Currently, multicore processors widely spread and many computers can improve processing performance by multithreading. However, many programs are still processed sequentially, and they do not make full use of their parallelism. To solve this problem, it is quite promising to automatically parallelize the binary code of the program by using binary translation techniques. Based on this background, we have proposed a system that automatically optimizes and parallelizes a binary code using LLVM. In this paper, we design the IR-level parallelization directives for the LLVM infrastructure and implement them in LLVM. This allows us to independently develop the compilation pass of code analysis and the pass of the code generation for parallelization. The separation of code analysis and code generation can realize the ease of the reuse of them. Evaluation results show that our LLVM compiler pass can generate parallelized IR code from sequential IR code with IR-level parallelization directives. The parallelized IR code achieved speedup as highly as the parallelized source code using OpenMP.
引用
收藏
页码:421 / 426
页数:6
相关论文
共 50 条
  • [1] An Implementation of LLVM Pass for Loop Parallelization Based on IR-Level Directives
    Jingu, Kengo
    Shigenobu, Kohta
    Ootsu, Kanemitsu
    Ohkawa, Takeshi
    Yokota, Takashi
    2018 SIXTH INTERNATIONAL SYMPOSIUM ON COMPUTING AND NETWORKING WORKSHOPS (CANDARW 2018), 2018, : 501 - 505
  • [2] Directive-based tile abstraction to distribute loops on accelerators
    Vanderbruggen, Tristan
    Cavazos, John
    Liao, Chunhua
    Quinlan, Daniel
    PROCEEDINGS OF THE GENERAL PURPOSE GPUS (GPGPU-10), 2017, : 53 - 62
  • [3] An Evaluation of Directive-Based Parallelization on the GPU Using a Parboil Benchmark
    Dukic, Jovan
    Misic, Marko
    ELECTRONICS, 2023, 12 (22)
  • [4] An Automatic Parallelization Framework for Complex Nested Loops Based on LLVM Pass
    Ma C.-Y.
    Lv B.-X.
    Ye X.-J.
    Zhang Y.
    Ruan Jian Xue Bao/Journal of Software, 2023, 34 (07):
  • [5] The Scalable Modeling System: directive-based code parallelization for distributed and shared memory computers
    Govett, M
    Hart, L
    Henderson, T
    Middlecoff, J
    Schaffer, D
    PARALLEL COMPUTING, 2003, 29 (08) : 995 - 1020
  • [6] Directive-Based Compilers for GPUs
    Ghike, Swapnil
    Gran, Ruben
    Garzaran, Maria J.
    Padua, David A.
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING (LCPC 2014), 2015, 8967 : 19 - 35
  • [7] Runtime on-stack parallelization of dependence-free for-loops in binary programs
    Yusuf, Marwa
    El-Mahdy, Ahmed
    Rohou, Erven
    IEEE Letters of the Computer Society, 2019, 2 (01): : 1 - 4
  • [8] Compiling a High-Level Directive-Based Programming Model for GPGPUs
    Tian, Xiaonan
    Xu, Rengan
    Yan, Yonghong
    Yun, Zhifeng
    Chandrasekaran, Sunita
    Chapman, Barbara
    LANGUAGES AND COMPILERS FOR PARALLEL COMPUTING, LCPC 2013, 2014, 8664 : 105 - 120
  • [9] Programming for GPUs: the Directive-Based Approach
    Grillo, Lucas
    de Sande, Francisco
    Fumero, Juan J.
    Reyes, Ruyman
    2013 EIGHTH INTERNATIONAL CONFERENCE ON P2P, PARALLEL, GRID, CLOUD AND INTERNET COMPUTING (3PGCIC 2013), 2013, : 612 - 617
  • [10] Directive-Based Pipelining Extension for OpenMP
    Cui, Xuewen
    Scogland, Thomas R. W.
    de Supinski, Bronis R.
    Feng, Wu-chun
    2016 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING (CLUSTER), 2016, : 481 - 484