Automatic OpenCL Device Characterization: Guiding Optimized Kernel Design
University of Innsbruck
EURO-PAR 2011, Parallel Processing, Lecture Notes in Computer Science, 2011, Volume 6853/2011, 438-452
@article{thoman2011automatic,
title={Automatic OpenCL Device Characterization: Guiding Optimized Kernel Design},
author={Thoman, P. and Kofler, K. and Studt, H. and Thomson, J. and Fahringer, T.},
journal={Euro-Par 2011 Parallel Processing},
pages={438–452},
year={2011},
publisher={Springer}
}
The OpenCL standard allows targeting a large variety of CPU, GPU and accelerator architectures using a single unified programming interface and language. While the standard guarantees portability of functionality for complying applications and platforms, performance portability on such a diverse set of hardware is limited. Devices may vary significantly in memory architecture as well as type, number and complexity of computational units. To characterize and compare the OpenCL performance of existing and future devices we propose a suite of microbenchmarks, uCLbench. We present measurements for eight hardware architectures – four GPUs, three CPUs and one accelerator – and illustrate how the results accurately reflect unique characteristics of the respective platform. In addition to measuring quantities traditionally benchmarked on CPUs like arithmetic throughput or the bandwidth and latency of various address spaces, the suite also includes code designed to determine parameters unique to OpenCL like the dynamic branching penalties prevalent on GPUs. We demonstrate how our results can be used to guide algorithm design and optimization for any given platform on an example kernel that represents the key computation of a linear multigrid solver. Guided manual optimization of this kernel results in an average improvement of 61% across the eight platforms tested.
September 8, 2011 by hgpu