Toward Performance Portability for CPUs and GPUs Through Algorithmic Compositions
University of Illinois at Urbana-Champaign
University of Illinois at Urbana-Champaign, 2017
@phdthesis{chang2017toward,
title={Toward performance portability for CPUS and GPUS through algorithmic compositions},
author={Chang, Li-Wen},
year={2017},
school={University of Illinois at Urbana-Champaign}
}
The diversity of microarchitecture designs in heterogeneous computing systems allows programs to achieve high performance and energy efficiency, but results in substantial software redevelopment cost for each type or generation of hardware. To mitigate this cost, a performance portable programming system is required. This work presents my solution to the performance portability problem. I argue that a new language is required for replacing the current practices of programming systems to achieve practical performance portability. To support my argument, I first demonstrate the limited performance portability of the current practices by showing quantitative and qualitative evidences. I identify the main limiting issues of conventional programming languages. To overcome the issues, I propose a new modular, compositionbased programming language that can effectively express an algorithmic design space with functional polymorphism, and a compiler that can effectively explore the design space and facilitate many high-level optimization techniques. This proposed approach achieves no less than 70% of the performance of highly optimized vendor libraries such as Intel MKL and NVIDIA CUBLAS/CUSPARSE on an Intel i7-3820 Sandy Bridge CPU, an NVIDIA C2050 Fermi GPU, and an NVIDIA K20c Kepler GPU.
October 15, 2017 by hgpu