Abstract
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.
Author supplied keywords
Cite
CITATION STYLE
Phothilimthana, P. M., Elliott, A. S., Wang, A., Jangda, A., Hagedorn, B., Barthels, H., … Bodik, R. (2019). Swizzle Inventor: Data Movement Synthesis for GPU Kernels. In International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS (pp. 65–78). Association for Computing Machinery. https://doi.org/10.1145/3297858.3304059
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.