Affiliation:
1. University of Illinois at Urbana-Champaign
2. Qualcomm Technologies Inc.
Abstract
We propose a parallel program representation for heterogeneous systems, designed to enable performance portability across a wide range of popular parallel hardware, including GPUs, vector instruction sets, multicore CPUs and potentially FPGAs. Our representation, which we call HPVM, is
a hierarchical dataflow graph with shared memory and vector instructions.
HPVM supports three important capabilities for programming heterogeneous systems: a compiler intermediate representation (IR), a virtual instruction set (ISA), and a basis for runtime scheduling; previous systems focus on only one of these capabilities. As a compiler IR, HPVM aims to enable effective code generation and optimization for heterogeneous systems. As a virtual ISA, it can be used to ship executable programs, in order to achieve both functional portability and performance portability across such systems. At runtime, HPVM enables flexible scheduling policies, both through the graph structure and the ability to compile individual nodes in a program to any of the target devices on a system. We have implemented a prototype HPVM system, defining the HPVM IR as an extension of the LLVM compiler IR, compiler optimizations that operate directly on HPVM graphs, and code generators that translate the virtual ISA to NVIDIA GPUs, Intel's AVX vector units, and to multicore X86-64 processors. Experimental results show that HPVM optimizations achieve significant performance improvements, HPVM translators achieve performance competitive with manually developed OpenCL code for both GPUs and vector hardware, and that runtime scheduling policies can make use of both program and runtime information to exploit the flexible compilation capabilities. Overall, we conclude that the HPVM representation is a promising basis for achieving performance portability and for implementing parallelizing compilers for heterogeneous parallel systems.
Funder
MARCO
National Science Foundation
DARPA
SRC STARNet C-FAR
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference38 articles.
1. R. Allen and K. Kennedy. 2002. Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers Inc. San Francisco CA. R. Allen and K. Kennedy. 2002. Optimizing Compilers for Modern Architectures. Morgan Kaufmann Publishers Inc. San Francisco CA.
2. Jason Ansel Cy Chan Yee Lok Wong Marek Olszewski Qin Zhao Alan Edelman and Saman Amarasinghe. 2009. PetaBricks: A Language and Compiler for Algorithmic Choice (PLDI). 10.1145/1542476.1542481 Jason Ansel Cy Chan Yee Lok Wong Marek Olszewski Qin Zhao Alan Edelman and Saman Amarasinghe. 2009. PetaBricks: A Language and Compiler for Algorithmic Choice (PLDI). 10.1145/1542476.1542481
3. E. A. Ashcroft and W. W. Wadge. 1977. Lucid a Nonprocedural Language with Iteration. Commun. ACM (1977). 10.1145/359636.359715 E. A. Ashcroft and W. W. Wadge. 1977. Lucid a Nonprocedural Language with Iteration. Commun. ACM (1977). 10.1145/359636.359715
4. CÃl'dric Augonnet Samuel Thibault Raymond Namyst and Pierre-AndrÃl' Wacrenier. 2011. StarPU: A Unified Platform for Task Scheduling on Heterogeneous Multicore Architectures. Concurrency and Computation: Practice and Experience (2011). 10.1002/cpe.1631 CÃl'dric Augonnet Samuel Thibault Raymond Namyst and Pierre-AndrÃl' Wacrenier. 2011. StarPU: A Unified Platform for Task Scheduling on Heterogeneous Multicore Architectures. Concurrency and Computation: Practice and Experience (2011). 10.1002/cpe.1631
5. PENCIL: A Platform-Neutral Compute Intermediate Language for Accelerator Programming
Cited by
33 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献