# Parallel Multi Channel Convolution using General Matrix Multiplication

arXiv: https://arxiv.org/abs/1704.04428 · HTML: https://mlsanity.com/paper/1704.04428/

## Key facts

- Cited by 30 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 6 Apr 2017.

## Built on by (most cited first, 30 of 30)

- [GradMax: Growing Neural Networks using Gradient Information](https://mlsanity.com/paper/2201.05125/) (2022)
- [Fast convolutional neural networks on FPGAs with hls4ml](https://mlsanity.com/paper/2101.05108/) (2021)
- [Neuro-Symbolic AI: An Emerging Class of AI Workloads and their Characterization](https://mlsanity.com/paper/2109.06133/) (2021)
- [Post-Training Sparsity-Aware Quantization](https://mlsanity.com/paper/2105.11010/) (2021)
- [Systems and Algorithms for Convolutional Multi-Hybrid Language Models at Scale](https://mlsanity.com/paper/2503.01868/) (2025)
- [When Linear Attention Meets Autoregressive Decoding: Towards More Effective and Efficient Linearized Large Language Models](https://mlsanity.com/paper/2406.07368/) (2024)
- [All Rivers Run to the Sea: Private Learning with Asymmetric Flows](https://mlsanity.com/paper/2312.05264/) (2023)
- [SMASH: Sparse Matrix Atomic Scratchpad Hashing](https://mlsanity.com/paper/2105.14156/) (2021)
- [Content-Aware Convolutional Neural Networks](https://mlsanity.com/paper/2106.15797/) (2021)
- [Advancing Direct Convolution using Convolution Slicing Optimization and ISA Extensions](https://mlsanity.com/paper/2303.04739/) (2023)
- [FairViT: Fair Vision Transformer via Adaptive Masking](https://mlsanity.com/paper/2407.14799/) (2024)
- [BF-IMNA: A Bit Fluid In-Memory Neural Architecture for Neural Network Acceleration](https://mlsanity.com/paper/2411.01417/) (2024)
- [MEMA Runtime Framework: Minimizing External Memory Accesses for TinyML on Microcontrollers](https://mlsanity.com/paper/2304.05544/) (2023)
- [Tazza: Shuffling Neural Network Parameters for Secure and Private Federated Learning](https://mlsanity.com/paper/2412.07454/) (2024)
- [Efficient and Generic 1D Dilated Convolution Layer for Deep Learning](https://mlsanity.com/paper/2104.08002/) (2021)
- [Analytic Learning of Convolutional Neural Network For Pattern Recognition](https://mlsanity.com/paper/2202.06504/) (2022)
- [OLLIE: Derivation-based Tensor Program Optimizer](https://mlsanity.com/paper/2208.02025/) (2022)
- [Sliding Window Sum Algorithms for Deep Neural Networks](https://mlsanity.com/paper/2305.16513/) (2023)
- [TabConv: Low-Computation CNN Inference via Table Lookups](https://mlsanity.com/paper/2404.05872/) (2024)
- [FairLRF: Achieving Fairness through Sparse Low Rank Factorization](https://mlsanity.com/paper/2511.16549/) (2025)
- [Theory of Minimal Weight Perturbations in Deep Networks and its Applications for Low-Rank Activated Backdoor Attacks](https://mlsanity.com/paper/2601.16880/) (2026)
- [Lipschitz Bound Analysis of Neural Networks](https://mlsanity.com/paper/2207.07232/) (2022)
- [Fast-ParC: Capturing Position Aware Global Feature for ConvNets and ViTs](https://mlsanity.com/paper/2210.04020/) (2022)
- [Towards a learning-based performance modeling for accelerating Deep Neural Networks](https://mlsanity.com/paper/2212.05031/) (2022)
- [Accelerating Machine Learning Primitives on Commodity Hardware](https://mlsanity.com/paper/2310.05218/) (2023)
- [Optimizing Sparse Convolution on GPUs with CUDA for 3D Point Cloud Processing in Embedded Systems](https://mlsanity.com/paper/2402.07710/) (2024)
- [A Framework to Enable Algorithmic Design Choice Exploration in DNNs](https://mlsanity.com/paper/2410.08300/) (2024)
- [Unified Kernel-Segregated Transpose Convolution Operation](https://mlsanity.com/paper/2502.20493/) (2025)
- [Reducing the Complexity of Matrix Multiplication by Quantum Computing](https://mlsanity.com/paper/2602.05541/) (2026)
- [ALADIN: Accuracy-Latency-Aware Design-space Inference Analysis for Embedded AI Accelerators](https://mlsanity.com/paper/2603.08722/) (2026)

## Abstract (arXiv)

Convolutional neural networks (CNNs) have emerged as one of the most successful machine learning technologies for image and video processing. The most computationally intensive parts of CNNs are the convolutional layers, which convolve multi-channel images with multiple kernels. A common approach to implementing convolutional layers is to expand the image into a column matrix (im2col) and perform Multiple Channel Multiple Kernel (MCMK) convolution using an existing parallel General Matrix Multiplication (GEMM) library. This im2col conversion greatly increases the memory footprint of the input matrix and reduces data locality. In this paper we propose a new approach to MCMK convolution that is based on General Matrix Multiplication (GEMM), but not on im2col. Our algorithm eliminates the need for data replication on the input thereby enabling us to apply the convolution kernels on the input images directly. We have implemented several variants of our algorithm on a CPU processor and an embedded ARM processor. On the CPU, our algorithm is faster than im2col in most cases.
