Research Goals


A heterogeneous system is one that uses more than one kind of processors or cores. It typically uses a general-purpose CPU to run an operating system and accelerators, such as GPUs and FPGAs, to perform some specific tasks faster and energy-efficiently. Heterogeneous systems that are based on GPUs and FPGAs are widening their user base these days. In the post-Moore era, the role of accelerator-based heterogeneous systems is becoming more important. Especially, GPU-based heterogeneous systems are de facto standard for running large-scale applications such as deep learning applications and quantum software platforms.

Ideally, software designers would like to extract performance and throughput gains proportional to the increase in the processor resources in the system. Unfortunately, a major challenge, the programming wall, needs to be addressed before such a goal can be achieved. It is an obstacle for general programmers and deep learning model designers to efficiently parallelize and optimize their applications to exploit their processor resources.

Our goal is to overcome the programming wall and to accelerate large-scale applications by means of Deep Learning models and compiler, runtime, architecture, and operating system techniques at various levels taking pragmatic approaches. In particular, we focus on the following topics: