Practical examples of GPU computing optimization principles


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)



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},


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.