Compiler Technology

Wen Heng Jack Chung, Yi Hong Lyu, I. Jui Ray Sung, Yun Wei Lee, Wen-Mei W Hwu

Research output: Chapter in Book/Report/Conference proceedingChapter

Abstract

In order to help programs exploit the power of systems compatible with the HSA, compilers and runtimes of high-level programming languages or domain-specific languages should target HSA for portable code generation and runtime management. In this chapter, we use C++ AMP, a parallel programming extension to C++, to show how efficient HSAIL code can be generated from a higher-level programming model. We discuss important translation techniques, such as mapping between C++ constructs and HSA features, compilation processes for GPU and CPU codes, tiling support, memory segment annotation. In addition, we explain how to access HSA-specific features such as shared virtual memory and platform atomics from C++, and we cover how they are mapped to HSAIL. These techniques can be useful for compiler writers interested in mapping other programming models to HSA. The implementation, Kalmar, which consists of a compiler, a set of header files, and a runtime library, is publicly accessible as an open source project.

Original languageEnglish (US)
Title of host publicationHeterogeneous System Architecture
Subtitle of host publicationA New Compute Platform Infrastructure
PublisherElsevier Inc.
Pages97-129
Number of pages33
ISBN (Print)9780128003862
DOIs
StatePublished - Dec 4 2015

Fingerprint

Data storage equipment
Parallel programming
Computer programming languages
Program processors
Code generation
Graphics processing unit

Keywords

  • C++ AMP
  • Code generation
  • Compiler
  • HSAIL
  • Kalmar
  • Parallel programming
  • Platform atomics
  • Programming model
  • Shared virtual memory

ASJC Scopus subject areas

  • Computer Science(all)

Cite this

Chung, W. H. J., Lyu, Y. H., Sung, I. J. R., Lee, Y. W., & Hwu, W-M. W. (2015). Compiler Technology. In Heterogeneous System Architecture: A New Compute Platform Infrastructure (pp. 97-129). Elsevier Inc.. https://doi.org/10.1016/B978-0-12-800386-2.00006-7

Compiler Technology. / Chung, Wen Heng Jack; Lyu, Yi Hong; Sung, I. Jui Ray; Lee, Yun Wei; Hwu, Wen-Mei W.

Heterogeneous System Architecture: A New Compute Platform Infrastructure. Elsevier Inc., 2015. p. 97-129.

Research output: Chapter in Book/Report/Conference proceedingChapter

Chung, WHJ, Lyu, YH, Sung, IJR, Lee, YW & Hwu, W-MW 2015, Compiler Technology. in Heterogeneous System Architecture: A New Compute Platform Infrastructure. Elsevier Inc., pp. 97-129. https://doi.org/10.1016/B978-0-12-800386-2.00006-7
Chung WHJ, Lyu YH, Sung IJR, Lee YW, Hwu W-MW. Compiler Technology. In Heterogeneous System Architecture: A New Compute Platform Infrastructure. Elsevier Inc. 2015. p. 97-129 https://doi.org/10.1016/B978-0-12-800386-2.00006-7
Chung, Wen Heng Jack ; Lyu, Yi Hong ; Sung, I. Jui Ray ; Lee, Yun Wei ; Hwu, Wen-Mei W. / Compiler Technology. Heterogeneous System Architecture: A New Compute Platform Infrastructure. Elsevier Inc., 2015. pp. 97-129
@inbook{251c71ae304146cd9669ed25d28392ce,
title = "Compiler Technology",
abstract = "In order to help programs exploit the power of systems compatible with the HSA, compilers and runtimes of high-level programming languages or domain-specific languages should target HSA for portable code generation and runtime management. In this chapter, we use C++ AMP, a parallel programming extension to C++, to show how efficient HSAIL code can be generated from a higher-level programming model. We discuss important translation techniques, such as mapping between C++ constructs and HSA features, compilation processes for GPU and CPU codes, tiling support, memory segment annotation. In addition, we explain how to access HSA-specific features such as shared virtual memory and platform atomics from C++, and we cover how they are mapped to HSAIL. These techniques can be useful for compiler writers interested in mapping other programming models to HSA. The implementation, Kalmar, which consists of a compiler, a set of header files, and a runtime library, is publicly accessible as an open source project.",
keywords = "C++ AMP, Code generation, Compiler, HSAIL, Kalmar, Parallel programming, Platform atomics, Programming model, Shared virtual memory",
author = "Chung, {Wen Heng Jack} and Lyu, {Yi Hong} and Sung, {I. Jui Ray} and Lee, {Yun Wei} and Hwu, {Wen-Mei W}",
year = "2015",
month = "12",
day = "4",
doi = "10.1016/B978-0-12-800386-2.00006-7",
language = "English (US)",
isbn = "9780128003862",
pages = "97--129",
booktitle = "Heterogeneous System Architecture",
publisher = "Elsevier Inc.",

}

TY - CHAP

T1 - Compiler Technology

AU - Chung, Wen Heng Jack

AU - Lyu, Yi Hong

AU - Sung, I. Jui Ray

AU - Lee, Yun Wei

AU - Hwu, Wen-Mei W

PY - 2015/12/4

Y1 - 2015/12/4

N2 - In order to help programs exploit the power of systems compatible with the HSA, compilers and runtimes of high-level programming languages or domain-specific languages should target HSA for portable code generation and runtime management. In this chapter, we use C++ AMP, a parallel programming extension to C++, to show how efficient HSAIL code can be generated from a higher-level programming model. We discuss important translation techniques, such as mapping between C++ constructs and HSA features, compilation processes for GPU and CPU codes, tiling support, memory segment annotation. In addition, we explain how to access HSA-specific features such as shared virtual memory and platform atomics from C++, and we cover how they are mapped to HSAIL. These techniques can be useful for compiler writers interested in mapping other programming models to HSA. The implementation, Kalmar, which consists of a compiler, a set of header files, and a runtime library, is publicly accessible as an open source project.

AB - In order to help programs exploit the power of systems compatible with the HSA, compilers and runtimes of high-level programming languages or domain-specific languages should target HSA for portable code generation and runtime management. In this chapter, we use C++ AMP, a parallel programming extension to C++, to show how efficient HSAIL code can be generated from a higher-level programming model. We discuss important translation techniques, such as mapping between C++ constructs and HSA features, compilation processes for GPU and CPU codes, tiling support, memory segment annotation. In addition, we explain how to access HSA-specific features such as shared virtual memory and platform atomics from C++, and we cover how they are mapped to HSAIL. These techniques can be useful for compiler writers interested in mapping other programming models to HSA. The implementation, Kalmar, which consists of a compiler, a set of header files, and a runtime library, is publicly accessible as an open source project.

KW - C++ AMP

KW - Code generation

KW - Compiler

KW - HSAIL

KW - Kalmar

KW - Parallel programming

KW - Platform atomics

KW - Programming model

KW - Shared virtual memory

UR - http://www.scopus.com/inward/record.url?scp=84967110147&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84967110147&partnerID=8YFLogxK

U2 - 10.1016/B978-0-12-800386-2.00006-7

DO - 10.1016/B978-0-12-800386-2.00006-7

M3 - Chapter

AN - SCOPUS:84967110147

SN - 9780128003862

SP - 97

EP - 129

BT - Heterogeneous System Architecture

PB - Elsevier Inc.

ER -