@inproceedings{0e30d6e67eca48bf8ca0a571dac77799,
title = "Optimizing batched winograd convolution on GPUs",
abstract = "In this paper, we present an optimized implementation for single-precision Winograd convolution on NVIDIA Volta and Turing GPUs. Compared with the state-of-the-art Winograd convolution in cuDNN 7.6.1, our implementation achieves up to 2.13× speedup on Volta V100 and up to 2.65× speedup on Turing RTX2070. On both Volta and Turing GPUs, our implementation achieves up to 93% of device peak. Apart from analyzing and benchmarking different high-level optimization options, we also build a SASS assembler TuringAs for Volta and Turing that enables tuning the performance at the native assembly level. The new optimization opportunities uncovered by TuringAs not only improve the Winograd convolution but can also benefit CUDA compilers and native assembly programming. We have released TuringAs as an open-source software. To the best of our knowledge, this is the first public-available assembler for Volta and Turing GPUs.",
keywords = "Convolution, GPU, Performance",
author = "Da Yan and Wei Wang and Xiaowen Chu",
note = "Funding Information: The aforementioned mechanism is supported by the control code. Control code stores information to prevent data hazards, control reuse flag, and balance progress between warps. A detailed introduction of the control code can be found in Section 2.1 in [5]. We give a detailed description of the yield flag (at [45]), since we found this flag will affect the overall performance.; 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2020 ; Conference date: 22-02-2020 Through 26-02-2020",
year = "2020",
month = feb,
day = "19",
doi = "10.1145/3332466.3374520",
language = "English",
series = "Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP",
publisher = "Association for Computing Machinery (ACM)",
pages = "32--44",
booktitle = "PPoPP 2020 - Proceedings of the 2020 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming",
address = "United States",
}