17219

cuTT: A High-Performance Tensor Transpose Library for CUDA Compatible GPUs

Antti-Pekka Hynninen, Dmitry I. Lyakh
NVIDIA Corporation, Santa Clara, CA 95050
arXiv:1705.01598 [cs.MS], (3 May 2017)

@article{hynninen2017cutt,

   title={cuTT: A High-Performance Tensor Transpose Library for CUDA Compatible GPUs},

   author={Hynninen, Antti-Pekka and Lyakh, Dmitry I.},

   year={2017},

   month={may},

   archivePrefix={"arXiv"},

   primaryClass={cs.MS}

}

We introduce the CUDA Tensor Transpose (cuTT) library that implements high-performance tensor transposes for NVIDIA GPUs with Kepler and above architectures. cuTT achieves high performance by (a) utilizing two GPU-optimized transpose algorithms that both use a shared memory buffer in order to reduce global memory access scatter, and by (b) computing memory positions of tensor elements using a thread-parallel algorithm. We evaluate the performance of cuTT on a variety of benchmarks with tensor ranks ranging from 2 to 12 and show that cuTT performance is independent of the tensor rank and that it performs no worse than an approach based on code generation. We develop a heuristic scheme for choosing the optimal parameters for tensor transpose algorithms by implementing an analytical GPU performance model that can be used at runtime without need for performance measurements or profiling. Finally, by integrating cuTT into the tensor algebra library TAL-SH, we significantly reduce the tensor transpose overhead in tensor contractions, achieving as low as just one percent overhead for arithmetically intensive tensor contractions.
Rating: 1.5/5. From 2 votes.
Please wait...

* * *

* * *

HGPU group © 2010-2024 hgpu.org

All rights belong to the respective authors

Contact us: