A Unified Programming Model for Heterogeneous Computing with CPU and Accelerator Technologies
Yuqing Xiong · 2019
This paper provides a unified programming model for heterogeneous computing with CPU and accelerator (like GPU, FPGA, Google TPU, and more) technologies. This new programming model provides a clean interface to application developers and to some extent makes programming across CPUs and accelerators turn into usual programming tasks with common programming languages. Thus it can contribute to improve software productivity for computing across CPUs and accelerators. It can be achieved by extending file managements in common programming languages, such as C/C++, Fortran, Python, MPI, etc., to cover GPUs, FPGAs, and other accelerators (such as Google TPU, etc.) as I/O devices. The programming model can be applied to a number of different computing systems equipped with accelerators, ranging from embedded systems, to mobile computing systems, to HPC systems, and to cloud computing systems.