Swizzle Inventor: Data Movement Synthesis for GPU Kernels

31Citations
Citations of this article
38Readers
Mendeley users who have this article in their library.

This article is free to access.

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

APA

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.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free