Heterogeneous computing – what does it mean for compiler research?

Norm Rubin
NVIDIA

Abstract:
The current trend in computer architecture is to increase the number of cores, to create specialized types of cores within a single machine, and to network such machines together in very fluid web/cloud computing arrangements. Compilers have traditionally focused on optimizations to code that improve performance, but is that the right target to speed up real applications? Consider loading a web page (like starting GMAIL) the page is transferred to the client, any JavaScript is compiled, the JavaScript executes, and the page gets displayed. The classic compiler model (which was first developed in the late 50′s) was a great fit for single core machines but has fallen behind architecture, and language. For example how do you compile a single program for a machine that has both a CPU and a graphics coprocessor (a GPU) with a very different programming and memory model? Together with the changes in architecture there have been changes in programming languages. Dynamic languages are used more, static languages are used less. How does this effect compiler research?

In this talk, I’ll review a number of traditional compiler research challenges that have (or will) become burning issues and will describe some new problems areas that were not considered in the past. For example language specifications are large complex technical documents that are difficult for non-experts to follow. Application programmers are often not willing to read these documents; can a compiler bridge the gap?

Biography: Norm Rubin has over thirty years of experience delivering commercial compilers for processors ranging from embedded (ARM), desktop (HP, ALPHA) and supercomputer (KSR), and is a recognized expert in th field. He was the architect and lead implementer for the widely used graphics compiler for AMD/ATI. That compiler is currently shipping on millions of machines including cell phones, consoles, and PCs. Norm was part of the AMD architecture team that designed GCN (Graphics core next). He was the lead designer of HSAIL, the virtual machine used in the HSA system architecture. Around a year ago he moved to NVIDA Research where he is working in algorithms and future programming models. Lately Norm has been looking at extending JavaScript to use GPUS and heterogeneous devices. Norm is also a visiting scholar at North Eastern Univ.
Dr. Rubin holds a PhD from the Courant Institute of NYU. Besides his work in compilers and architecture, he is well known for his work in GPU systems, compiler related parts of the tool chain, binary translators and dynamic optimizers.