Translating OpenACC to LLVM IR with SPIR kernels

Hao Wei Peng, Jyh-Jiun Shann

Research output: Chapter in Book/Report/Conference proceedingConference contribution

1 Scopus citations

Abstract

In general, highly parallelized programs executed on heterogeneous multiprocessor platforms may get better performance than homogeneous ones. OpenCL is one of the standards for parallel programming of heterogeneous multiprocessor platforms and SPIR (Standard Portable Intermediate Representation) is a portable binary format for representing OpenCL kernel code. However, the programming of these programs is usually complex and error-prone for most programmers. Therefore, some standards have been proposed to simplify the programming on heterogeneous multiprocessor platforms, for example, OpenACC (a directive-based parallel programming model). In this paper, we implement our framework on Clang, the C front-end of LLVM, to automatically translate OpenACC to LLVM IR with SPIR kernels. After that, it is optional to optimize the IR code by LLVM optimizer and execute the host LLVM IR by LLVM JIT-compiler. According to the experiment results, our translated programs have significant performance enhancement for some programs while comparing with their corresponding sequential version of programs and have comparable performance while comparing with their manual OpenCL version. Therefore, our design may reduce the difficulty of writing the programs in heterogeneous multiprocessor platform and the translated OpenCL programs are portable and have good performance as that of the manual OpenCL programs written by experienced programmers.

Original languageEnglish
Title of host publication2016 IEEE/ACIS 15th International Conference on Computer and Information Science, ICIS 2016 - Proceedings
EditorsKuniaki Uehara, Masahide Nakamura
PublisherInstitute of Electrical and Electronics Engineers Inc.
ISBN (Electronic)9781509008063
DOIs
StatePublished - 23 Aug 2016
Event15th IEEE/ACIS International Conference on Computer and Information Science, ICIS 2016 - Okayama, Japan
Duration: 26 Jun 201629 Jun 2016

Publication series

Name2016 IEEE/ACIS 15th International Conference on Computer and Information Science, ICIS 2016 - Proceedings

Conference

Conference15th IEEE/ACIS International Conference on Computer and Information Science, ICIS 2016
CountryJapan
CityOkayama
Period26/06/1629/06/16

Keywords

  • Clang
  • LLVM
  • OpenACC
  • OpenCL
  • SPIR
  • heterogeneous multiprocessor platforms

Fingerprint Dive into the research topics of 'Translating OpenACC to LLVM IR with SPIR kernels'. Together they form a unique fingerprint.

  • Cite this

    Peng, H. W., & Shann, J-J. (2016). Translating OpenACC to LLVM IR with SPIR kernels. In K. Uehara, & M. Nakamura (Eds.), 2016 IEEE/ACIS 15th International Conference on Computer and Information Science, ICIS 2016 - Proceedings [7550823] (2016 IEEE/ACIS 15th International Conference on Computer and Information Science, ICIS 2016 - Proceedings). Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/ICIS.2016.7550823