کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
432663 | 689021 | 2015 | 9 صفحه PDF | دانلود رایگان |
• We investigate the performance of a 2D Gaussian variable kernel convolution on GPU.
• We produce several implementations, both conventional, gather-based, and new, scatter-based.
• The performance of the implementations is evaluated on several GPUs of different architecture.
• The scatter-based approach achieves considerably better performance for all GPUs and kernel sizes.
• The results should extend to any similar kernel and to problems of higher dimensionality.
Kernel superposition, where an image is convolved with a spatially varying kernel, is commonly used in optics, astronomy, medical imaging and radiotherapy. This operation is computationally expensive and generally cannot benefit from the mathematical simplifications available for true convolutions. We systematically evaluated the performance of a number of implementations of a 2D Gaussian kernel superposition on several graphics processing units of two recent architectures. The 2D Gaussian kernel was used because of its importance in real-life applications and representativeness of expensive-to-evaluate, separable kernels. The implementations were based both on the gather approach found in the literature and on the scatter approach presented here. Our results show that, over a range of kernel sizes, the scatter approach delivers speedups of 2.1–14.5 or 1.3–4.9 times, depending on the architecture. These numbers were further improved to 4.8–28.5 and 3.7–16.8 times, respectively, when only “exact” implementations were compared. Speedups similar to those presented are expected for other separable kernels and, we argue, will also remain applicable for problems of higher dimensionality.
Journal: Journal of Parallel and Distributed Computing - Volume 84, October 2015, Pages 15–23