Optimizing N-dimensional, winograd-based convolution for manycore CPUs
Authors:
Open Access
- 10 February 2018
- journal article
- conference paper
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 53 (1) , 109-123
Abstract
Recent work on Winograd-based convolution allows for a great reduction of computational complexity, but existing implementations are limited to 2D data and a single kernel size of 3 by 3. They can achieve only slightly better, and often worse performance than better optimized, direct convolution implementations. We propose and implement an algorithm for N-dimensional Winograd-based convolution that allows arbitrary kernel sizes and is optimized for manycore CPUs. Our algorithm achieves high hardware utilization through a series of optimizations. Our experiments show that on modern ConvNets, our optimized implementation, is on average more than 3 x, and sometimes 8 x faster than other state-of-the-art CPU implementations on an Intel Xeon Phi manycore processors. Moreover, our implementation on the Xeon Phi achieves competitive performance for 2D ConvNets and superior performance for 3D ConvNets, compared with the best GPU implementations.Keywords
This publication has 22 references indexed in Scilit:
- U-Net: Convolutional Networks for Biomedical Image Segmentation2015
- An input-adaptive and in-place approach to dense tensor-times-matrix multiply2015
- Full correlation matrix analysis of fMRI data on Intel® Xeon Phi™ coprocessors2015
- VoxNet: A 3D Convolutional Neural Network for real-time object recognition2015
- Going deeper with convolutions2015
- 3D Convolutional Neural Networks for landing zone detection from LiDAR2015
- ImageNet Large Scale Visual Recognition ChallengeInternational Journal of Computer Vision, 2015
- Tensor Decompositions and ApplicationsSIAM Review, 2009
- Niagara: A 32-Way Multithreaded Sparc ProcessorIEEE Micro, 2005
- The Stanford Hydra CMPIEEE Micro, 2000