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 条
  • [21] Optimizing legacy molecular dynamics software with directive-based offload
    Brown, W. Michael
    Carrillo, Jan-Michael Y.
    Gavhane, Nitin
    Thakkar, Foram M.
    Plimpton, Steven J.
    COMPUTER PHYSICS COMMUNICATIONS, 2015, 195 : 95 - 101
  • [22] Ariadne - Directive-based parallelism extraction from recursive functions
    Mastoras, Aristeidis
    Manis, George
    JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 2015, 86 : 16 - 28
  • [23] A Translation Method of ARM Machine Code to LLVM-IR for Binary Code Parallelization and Optimization
    Shigenobu, Kohta
    Ootsu, Kanemitsu
    Ohkawa, Takeshi
    Yokota, Takashi
    2017 FIFTH INTERNATIONAL SYMPOSIUM ON COMPUTING AND NETWORKING (CANDAR), 2017, : 575 - 579
  • [24] HeteroPP: A directive-based heterogeneous cooperative parallel programming framework
    Wan, Lanjun
    Cui, Xueyan
    Li, Yuanyuan
    Zheng, Weihua
    Yuan, Xinpan
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2024, 36 (11):
  • [25] HSTREAM: A directive-based language extension for heterogeneous stream computing
    Memeti, Suejb
    Pllana, Sabri
    2018 21ST IEEE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND ENGINEERING (CSE 2018), 2018, : 138 - 145
  • [26] A directive-based MPI code generator for Linux PC clusters
    Yang, Chao-Tung
    Lai, Kuan-Chou
    JOURNAL OF SUPERCOMPUTING, 2009, 50 (02): : 177 - 207
  • [27] A directive-based MPI code generator for Linux PC clusters
    Chao-Tung Yang
    Kuan-Chou Lai
    The Journal of Supercomputing, 2009, 50 : 177 - 207
  • [28] Exploring performance improvement opportunities in directive-based GPU programming
    Diarra, Rokiatou
    Merigot, Alain
    Vincke, Bastien
    2018 CONFERENCE ON DESIGN AND ARCHITECTURES FOR SIGNAL AND IMAGE PROCESSING (DASIP), 2018, : 82 - 87
  • [29] The Framework and Compilation Techniques for Directive-based GPU Cluster Programming
    Makpaisit, Pisit
    Uthayopas, Putchong
    2014 11TH INTERNATIONAL JOINT CONFERENCE ON COMPUTER SCIENCE AND SOFTWARE ENGINEERING (JCSSE), 2014, : 229 - 235
  • [30] ATF: A generic directive-based auto-tuning framework
    Rasch, Ari
    Gorlatch, Sergei
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2019, 31 (05):