Improving Performance Portability in OpenCL Programs
Department of Computer Science, University of Chicago
International Supercomputing Conference (ISC ’13), 2013
@article{yao2013improving,
title={Improving Performance Portability in OpenCL Programs},
author={Yao Zhang, Mark Sinclair II and Chien, Andrew A},
year={2013}
}
We study the performance portability of OpenCL across diverse architectures including NVIDIA GPU, Intel Ivy Bridge CPU, and AMD Fusion APU. We present detailed performance analysis at assembly level on three exemplar OpenCL benchmarks: SGEMM, SpMV, and FFT. We also identify a number of tuning knobs that are critical to performance portability, including threads-data mapping, data layout, tiling size, data caching, and operation-specific factors. We further demonstrate that proper tuning could improve the OpenCL portable performance from the current 15% to a potential 67% of the state-of-the-art performance on the Ivy Bridge CPU. Finally, we evaluate the current OpenCL programming model, and propose a list of extensions that improve performance portability.
March 26, 2013 by hgpu