Practical examples of GPU computing optimization principles
Detail
Authors: Patrik Goorts, Sammy Rogmans, Steven Vanden Eynde and Philippe Bekaert
Language: English
Year: 2010
Journal: Proceedings of the 2010 International Conference on Signal Processing and Multimedia Applications (SIGMAP)
Link: http://patrikgoorts.com/Publications/goorts2010practical.pdf
Bibtex
@inproceedings{goorts2010practical, title={Practical examples of GPU computing optimization principles}, author={Goorts, P. and Rogmans, S. and Vanden Eynde, S. and Bekaert, P.}, booktitle={Signal Processing and Multimedia Applications (SIGMAP), Proceedings of the 2010 International Conference on}, pages={46–49}, year={2010}, organization={IEEE} }
Abstract
In this paper, we provide examples to optimize signal processing or visual computing algorithms written for SIMT-based GPU architectures. These implementations demonstrate the optimizations for CUDA or its successors OpenCL and DirectCompute. We discuss the effect and optimization principles of memory coalescing, bandwidth reduction, processor occupancy, bank conflict reduction, local memory elimination and instruction optimization. The effect of the optimization steps are illustrated by state-of-the-art examples. A comparison with optimized and unoptimized algorithms is provided. A first example discusses the construction of joint histograms using shared memory, where optimizations lead to a significant speedup compared to the original implementation. A second example presents convolution and the acquired results.