This is an old revision of the document!
The prevailing perception about programming heterogeneous parallel computing systems today is that major types of computing devices, such as CPUs, GPUs, and DSPs, each requires a different version of source code to achieve high performance. Even with common data parallel language such as OpenCL, most developers assume that they need to write different versions of source code for different device types. Unfortunately, such code versioning drastically increases development, testing, and maintenance cost of applications. In this talk, I will present two systems, one at the OpenCL level (MxPA) and one at functional programming level (Triolet), that enable single-source development of data parallel code for diverse device types. MxPA is a commercial product today and Triolet is a research prototype. For MxPA, I will show the key compiler transformations that enable a code base that is developed based on GPU performance guidelines to achieve high performance on multicore CPUs with SIMD instructions. I will also show the reasons why many GPU algorithms and CPU algorithms are converging. This brings up an interesting question: does the traditional definition of processor architectures really matter for application developers?
Wen-mei W. Hwu is a Professor and holds the Sanders-AMD Endowed Chair in the Department of Electrical and Computer Engineering, University of Illinois at Urbana- Champaign. He is also CTO of MulticoreWare Inc., Chief Scientist of UIUC Parallel Computing Institute and director of the IMPACT research group (www.crhc.uiuc.edu/ Impact). He directs the UIUC CUDA Center of Excellence and serves as one of the principal investigators of the NSF Blue Waters Petascale computer project. For his contributions, he received the ACM SigArch Maurice Wilkes Award, the ACM Grace Murray Hopper Award, the ISCA Influential Paper Award, and the Distinguished Alumni Award in Computer Science of the University of California, Berkeley. He is a fellow of IEEE and ACM. Dr. Hwu received his Ph.D. degree in Computer Science from the University of California, Berkeley.