Fast GPGPU Data Rearrangement Kernels using CUDA
Chair for Scientific Computing, Department of Informatics, Technische Universitat Munchen, Munich, Germany
arXiv:1011.3583 [cs.DC] (16 Nov 2010)
@article{2010arXiv1011.3583B,
author={Bader}, M. and {Bungartz}, {H.-J.} and {Mudigere}, D. and {Narasimhan}, S. and {Narayanan}, B.},
title={“{Fast GPGPU Data Rearrangement Kernels using CUDA}”},
journal={ArXiv e-prints},
archivePrefix={“arXiv”},
eprint={1011.3583},
primaryClass={“cs.DC”},
keywords={Computer Science – Distributed, Parallel, and Cluster Computing, Computer Science – Graphics, Computer Science – Performance},
year={2010},
month={nov},
adsurl={http://adsabs.harvard.edu/abs/2010arXiv1011.3583B},
adsnote={Provided by the SAO/NASA Astrophysics Data System}
}
Many high performance-computing algorithms are bandwidth limited, hence the need for optimal data rearrangement kernels as well as their easy integration into the rest of the application. In this work, we have built a CUDA library of fast kernels for a set of data rearrangement operations. In particular, we have built generic kernels for rearranging m dimensional data into n dimensions, including Permute, Reorder, Interlace/De-interlace, etc. We have also built kernels for generic Stencil computations on a two-dimensional data using templates and functors that allow application developers to rapidly build customized high performance kernels. All the kernels built achieve or surpass best-known performance in terms of bandwidth utilization.
January 18, 2011 by hgpu