8564

A compiler toolkit for array-based languages targeting CPU/GPU hybrid systems

Rahul Garg, Laurie Hendren
Sable Research Group, School of Computer Science, McGill University
Sable Technical Report (2012-03), McGill University, Montreal, Canada, 2012

@TechReport{sable-tr-2012-3,

   author={Rahul Garg, Laurie Hendren},

   title={A compiler toolkit for array-based languages targeting CPU/GPU hybrid systems},

   institution={Sable Research Group, School of Computer Science, McGill University},

   number={SABLE-TR-2012-3},

   year={2012},

   month={November},

   address={Montr’eal, Qu’ebec, Canada}

}

Download Download (PDF)   View View   Source Source   Source codes Source codes

Package:

3118

views

This paper presents a compiler toolkit that addresses two important emerging challenges: (1) effectively compiling dynamic array-based languages such as MATLAB, Python and R; and (2) effectively utilizing a wide range of rapidly evolving hybrid CPU/GPU architectures. The toolkit provides: a high-level IR specifically designed to express a wide range of arraybased computations and indexing modes; Velociraptor, a CPU/GPU code generator and runtime library; and RaijinCL, a portable autotuning GPU library for key BLAS routines. A compiler developer uses the toolkit by generating VelociraptorIR for key parts of an input program, and using Velociraptor to automatically generate CPU/GPU code. The toolkit leverages OpenCL and LLVM for GPU and CPU code generation respectively, and can thus be used for a wide variety of target architectures. To demonstrate different possible uses of the toolkit, the paper presents a proof-of-concept CPU/GPU Python compiler, and a GPU extension of a MATLAB JIT.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: