Swizzle inventor: data movement synthesis for GPU kernels
PM Phothilimthana, AS Elliott, A Wang… - Proceedings of the …, 2019 - dl.acm.org
Proceedings of the Twenty-Fourth International Conference on Architectural …, 2019•dl.acm.org
Utilizing memory and register bandwidth in modern architectures may require swizzles---non-
trivial mappings of data and computations onto hardware resources---such as shuffles. We
develop Swizzle Inventor to help programmers implement swizzle programs, by writing
program sketches that omit swizzles and delegating their creation to an automatic
synthesizer. Our synthesis algorithm scales to real-world programs, allowing us to invent
new GPU kernels for stencil computations, matrix transposition, and a finite field …
trivial mappings of data and computations onto hardware resources---such as shuffles. We
develop Swizzle Inventor to help programmers implement swizzle programs, by writing
program sketches that omit swizzles and delegating their creation to an automatic
synthesizer. Our synthesis algorithm scales to real-world programs, allowing us to invent
new GPU kernels for stencil computations, matrix transposition, and a finite field …
Utilizing memory and register bandwidth in modern architectures may require swizzles --- non-trivial mappings of data and computations onto hardware resources --- such as shuffles. We develop Swizzle Inventor to help programmers implement swizzle programs, by writing program sketches that omit swizzles and delegating their creation to an automatic synthesizer. Our synthesis algorithm scales to real-world programs, allowing us to invent new GPU kernels for stencil computations, matrix transposition, and a finite field multiplication algorithm (used in cryptographic applications). The synthesized 2D convolution and finite field multiplication kernels are on average 1.5--3.2x and 1.1--1.7x faster, respectively, than expert-optimized CUDA kernels.
ACM Digital Library