International Symposium on Future of High Performance Green Computing 2018 (HPGC2018)
Professor, Seoul National University
Target-independent Runtime System for Heterogeneous Accelerators
Heterogeneous computing is widening its user base because of its high performance and high power efficiency. Especially, heterogeneous computing with GPUs is the de-facto standard for running deep learning applications in these days. There are two widely used heterogeneous programming models: CUDA and OpenCL. OpenCL provides a common abstraction layer across different accelerator architectures, such as multicore CPUs, GPUs, and FPGAs. While the usage of CUDA is restricted to NVIDIA GPUs, it is the most popular programming model to implement DNN frameworks because of the cuDNN library. Although OpenCL inherited many features from CUDA and they have almost the same platform model, they are not compatible with each other. In addition, they are restricted to a heterogeneous system running a single operating system instance. To target a heterogeneous cluster running multiple operating system instances, programmers must use an OpenCL or CUDA framework together with a communication library, such as MPI. In this talk, we introduce a target-independent runtime system for both CUDA and OpenCL. It is an on-going work at Seoul National University. With our runtime system, programs written in either CUDA or OpenCL can run on a system with different types of accelerators, such as AMD GPUs, NVIDIA GPUs, multicore CPUs, Intel FPGAs, and Xilinx FPGAs. In addition, programs solely written in either OpenCL or CUDA also run on a cluster equipped with such heterogeneous accelerators without using any communication library. Since CUDA or OpenCL separately has a wide user base and large code base, our runtime system is useful to extend the code base for each programming model and unifies the efforts to develop applications in heterogeneous computing.
Jaejin Lee is the director of the Center for Manycore Programming and a professor in the Department of Computer Science and Engineering at Seoul National University (SNU), Korea. He received his Ph.D. degree in Computer Science from the University of Illinois at Urbana-Champaign (UIUC) in 1999. He received an M.S. degree in Computer Science from Stanford University in 1995 and a B.S. degree in Physics from SNU in 1991. After obtaining the Ph.D. degree, he spent a half year at the UIUC as a visiting lecturer and a postdoctoral research associate. He was an assistant professor in the Department of Computer Science and Engineering at Michigan State University from January 2000 to August 2002 before joining SNU. His current research interests include developing programming environments for accelerators, such as multicore CPUs, GPUs and FPGAs, and building power-efficient/cost-effective heterogeneous supercomputers.