The Indirect Convolution Algorithm
Marat Dukhan

TL;DR
The paper introduces the Indirect Convolution algorithm, which improves efficiency over traditional GEMM-based convolution methods by eliminating the need for data reshuffling, thus reducing memory overhead and enhancing performance for various convolution configurations.
Contribution
The Indirect Convolution algorithm offers a novel approach that avoids data reshaping, broadening application scope and outperforming GEMM-based methods in many scenarios.
Findings
Reduces memory overhead proportionally to input channels.
Outperforms GEMM-based algorithms by up to 62% on certain parameters.
Minor performance reduction on 1x1 stride-1 convolutions.
Abstract
Deep learning frameworks commonly implement convolution operators with GEMM-based algorithms. In these algorithms, convolution is implemented on top of matrix-matrix multiplication (GEMM) functions, provided by highly optimized BLAS libraries. Convolutions with 1x1 kernels can be directly represented as a GEMM call, but convolutions with larger kernels require a special memory layout transformation - im2col or im2row - to fit into GEMM interface. The Indirect Convolution algorithm provides the efficiency of the GEMM primitive without the overhead of im2col transformation. In contrast to GEMM-based algorithms, the Indirect Convolution does not reshuffle the data to fit into the GEMM primitive but introduces an indirection buffer - a buffer of pointers to the start of each row of image pixels. This broadens the application of our modified GEMM function to convolutions with arbitrary…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Neural Network Applications · Sparse and Compressive Sensing Techniques · Domain Adaptation and Few-Shot Learning
MethodsConvolution
