REVIEW 4 major objections 6 minor 24 references
SMM-Conv: Scalar Matrix Multiplication with Zero Packing for Accelerated Convolution
T0 review · 4 major / 6 minor · reviewed 2026-08-12 · deepseek-v4-flash
Pith's one-line read SMM-Conv replaces im2col+GEMM with scalar-matrix multiplication into one reused buffer per thread, and reports end-to-end CPU speedups of 3.42x on AlexNet, 2.11x on VGG, and 2.00x on YOLO.
desk verdict A clean stride-1 convolution recipe with a reused buffer, but the claimed network speedups rest on an undocumented stride/padding extension and thin baselines. read the letter →
The pith
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
The reading
What carries the argument
The load-bearing mechanism is scalar-matrix multiplication with zero packing, driven by a 'shifting' operation. For a kernel of height $k_h$ and width $k_w$, the input is sliced into $k_w$ sub-matrices of size $h \times w'$ (all rows, $w'$ consecutive columns); each slice is shifted down $k_h$ times so the rows align with the $k_h$ kernel rows, and each shifted $h' \times w'$ window is multiplied by a single scalar kernel weight and accumulated into the output. Because all scalar-matrix products read from one contiguous $h \times w'$ buffer that is reused across channels and offsets, the method needs only $d$ such buffers for $d$ threads and avoids the $c_i \cdot k_h \cdot k_w \cdot h' \cdot w'$ temporary matrix of im2col. The kernel is stored in $c_i \times k_w \times k_h \times c_o$ layout so the scalar weights are accessed in the same order as the shifts.
What would settle it
Take the first convolutional layer of AlexNet (11x11 kernel, stride 4, padding 2) or a VGG 3x3 stride-1 padding-1 layer, run SMM-Conv against a reference convolution implementation on random input, and compare outputs exactly; a mismatch would show the published algorithm does not cover the configurations claimed in Table 2.
Extended reading notes
Core claim
On the paper's own terms, the central discovery is that the standard im2col+GEMM pipeline is not the best way to compute a channels-first convolution on a CPU. Instead of copying every kernel-sized image block into a column of a large matrix and then calling a matrix-matrix product, SMM-Conv keeps the input in place: for each input channel it extracts $k_w$ horizontal slices of width $w'$, shifts each slice down $k_h$ times, multiplies the shifted $h' \times w'$ windows by the corresponding scalar kernel weights, and accumulates into the output. The same $h \times w'$ buffer is overwritten for every slice, so temporary memory is about one output-sized matrix per thread. The authors report that this approach runs the convolutional layers of AlexNet, VGG, and YOLO in 0.1348 s, 1.3535 s, and 0.2889 s respectively, corresponding to 3.42x, 2.11x, and 2.00x speedups over im2col+GEMM and faster than the memory-efficient convolution baseline.
Load-bearing premise
The network-level speedups assume the undocumented extension of the stride-1, no-padding algorithm to the padding and stride settings of real network layers; if that extension is wrong, the end-to-end numbers do not hold.
Editorial extensions
If this is right
- The convolution is exact: the number of multiply-accumulate operations is the same as direct convolution, so the reported speedups come without accuracy loss or retraining.
- Temporary memory falls from $c_i k_h k_w h' w'$ to $h w'$ per thread, roughly a factor of $c_i k_h k_w$ when $h' \approx h$.
- Memory use becomes independent of the number of input channels, which matters for low-power devices with tight memory budgets.
- The method extends naturally to multi-threading: $d$ threads, each owning one $h \times w'$ buffer and $c_o/d$ output maps, run in parallel with a synchronization point per slice.
Reading between the lines
- Editorial extension: the published description covers stride-1 valid convolution only; real networks use stride and padding, so either the implementation contains undocumented preprocessing or the Table 2 speedups apply only to the subset of layers that match the described setting.
- Editorial extension: the speedup mechanism implies the largest wins occur when im2col duplication is worst, namely small kernels, many input channels, and spatial sizes where $h' \approx h$; the scalability plots support this, and a user should expect smaller gains for large-stride or heavily padded layers.
- Editorial extension: the same buffer-reuse idea could be tested on depthwise convolutions and on transposed convolutions, where im2col-style packing is also memory-heavy; the paper does not address these.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper proposes SMM-Conv, a CPU convolution method for channels-first tensors that replaces im2col+GEMM with repeated scalar-matrix multiplications on shifted h×w' slices, reusing one memory buffer per thread. It claims to reduce memory overhead and to achieve end-to-end speedups of 3.42x, 2.11x, and 2.00x on AlexNet, VGG, and YOLO, respectively, compared with im2col+GEMM, and to run faster than MEC in all three networks. The core derivation for stride-1, no-padding valid convolution is straightforward, but the printed algorithms contain an output-channel indexing error, and the paper never specifies how padding and stride are handled in the benchmarked networks.
Significance. If the claims hold, SMM-Conv would be an attractive simple alternative for CPU inference: it avoids im2col's memory duplication, has no fitted parameters, and is derived directly from the definition of convolution. The memory-reduction argument around Eq. (1) is sound for the described valid-convolution setting. However, the significance is conditional because the central empirical claim depends on an undocumented extension to non-unit strides and padding, and because the pseudocode as printed is not correct as written. The paper would be strengthened substantially by releasing the implementation and by fixing the algorithm specification.
major comments (4)
- [Algorithm 1, line 11] The accumulation target is O[c,:,:] while c is the input-channel loop variable; the correct target is O[m,:,:], where m is the output-channel loop variable. As printed, the single-thread algorithm accumulates all output-channel contributions into the same input-channel-indexed slice, producing an incorrect output tensor or an out-of-bounds access when co < ci. This is a load-bearing error in the algorithm that defines the method.
- [Section 3.2 / Algorithms 1-2 / Table 2] The shifting step ShiftedMat = SlicedMat[k:h'+k,:] computes valid convolution with stride 1 and no padding only. The paper never gives the output-size formulas h'=(h+2p-kh)/s+1 and w'=(w+2p-kw)/s+1, nor does it explain how boundary zeros or output decimation are handled for stride s>1. Yet the benchmarked networks contain non-unit strides and padding: AlexNet conv1 uses stride 4 and pad 2, YOLO contains stride-2 convolutions, and VGG uses pad 1 throughout. Consequently, the end-to-end speedups in Table 2 are not supported by the described algorithm. If the implementation computes a dense stride-1 convolution and then subsamples, the MAC count grows by s^2, which contradicts the statement in Section 4.2 that the compared methods share the same number of multiplications and accumulations.
- [Algorithm 2, lines 15-17] The parallel indexing lambda*#n is not a valid assignment of output channels. With d threads, #n takes values 0,...,d-1, so K and O are accessed at indices 0, lambda, 2*lambda, ... for different lambda values. This causes overlapping writes for some channels and leaves other channels unwritten, so the parallel algorithm is incorrect as written. The intended indexing is presumably lambda + #n*(co/d) (or an equivalent block partition). Without a correct parallel description, the OpenMP-based speedups in Section 4 cannot be reproduced from the pseudocode.
- [Section 4.1 / 4.2] No code is released, and the paper does not state how padding and stride were treated in the implementations that produced Table 2 and Figure 3. Given that the printed algorithm covers only stride-1, no-padding convolution, the experimental section must be accompanied either by the implementation or by detailed per-layer configurations (padding, stride, input/output channel counts, kernel sizes, and how each is mapped to the slicing scheme). Without this, the claimed network-level speedups cannot be checked.
minor comments (6)
- [Section 3.2.1] The notation T^1_j is inconsistent with Table 1, which defines T^c_j; please use the latter consistently. Additionally, define h' and w' by explicit formulas that include padding and stride.
- [Title / Abstract / Section 3.2] The phrase 'zero packing' is never defined. If it refers to zero-initializing the output buffer, that is not the same as zero-padding the input; please clarify the terminology.
- [Section 4.1] Please report compiler flags, OpenMP thread count, CPU frequency/power settings, and whether timings are averaged over multiple runs. These details are important for interpreting the speedup numbers.
- [Section 3.4 / Eq. (1)] The sentence 'reduces the total temporary memory by ci*Kh*kw' is ambiguous; Eq. (1) shows a reduction by a factor of approximately ci*kh*kw, so the text should say 'by a factor of approximately ...'.
- [Section 4.2 / Reference [6]] The cited reference [6] is YOLO-Lite, not YOLOv3; please cite the original YOLOv3 paper (or clarify if YOLO-Lite is indeed the network used).
- [Figure 3] The figure should identify which curve corresponds to AlexNet, VGG, and YOLO, either directly in the plot or in the caption.
Circularity Check
No significant circularity: SMM-Conv is derived directly from the definition of convolution and benchmarked against external baselines.
full rationale
The paper's derivation chain is self-contained. SMM-Conv is introduced in Section 3.2 as a decomposition of convolution into a summation of kh*kw shifted sub-matrix products, which is a direct algebraic reformulation of the convolution definition rather than a fitted or assumed result. No parameter is fitted to the benchmark data; the kernel weights are given network weights used to compute the convolution itself, and the reported speedups are measured against im2col+GEMM and MEC as external baselines. The memory-requirement comparison in Eq. (1) is an algebraic ratio between two buffer sizes and does not presuppose the claimed speedups. The self-citations in the paper (Refs. [1], [2], [5]) appear only in background statements about computational cost, denoising, and low-rank approximations, and none of them is load-bearing for the central algorithmic claim or the experimental results. Concerns such as the undocumented handling of stride and padding in the network-level benchmarks are correctness or reproducibility risks, not circularity: an undocumented implementation step is not the same as a prediction that reduces to its own input. The central algorithm and its performance comparison therefore do not rely on circular reasoning, self-citation chains, or fitted inputs disguised as predictions.
Assumptions & free parameters
assumptions (3)
- domain assumption The compared baselines (PyTorch/MKL im2col+GEMM and MEC) are representative of state-of-the-art CPU convolution implementations.
- domain assumption The compiler and hardware will apply FMA and SIMD optimizations to the scalar-matrix multiply-accumulate loops, and the cache behavior of the h by w' buffer is beneficial.
- ad hoc to paper All tested convolutional layers in AlexNet, VGG, and YOLO are compatible with the described algorithm under some unstated handling of padding and stride.
Cite this review
Pith. "Pith review of SMM-Conv: Scalar Matrix Multiplication with Zero Packing for Accelerated Convolution." pith.science (2026). https://pith.science/paper/T4RLC2FW
@misc{pith2026241115659,
author = {Pith},
title = {Pith review of: SMM-Conv: Scalar Matrix Multiplication with Zero Packing for Accelerated Convolution},
year = {2026},
howpublished = {\url{https://pith.science/paper/T4RLC2FW}},
note = {Machine review of arXiv:2411.15659}
}
read the original abstract
We present a novel approach for accelerating convolutions during inference for CPU-based architectures. The most common method of computation involves packing the image into the columns of a matrix (im2col) and performing general matrix multiplication (GEMM) with a matrix of weights. This results in two main drawbacks: (a) im2col requires a large memory buffer and can experience inefficient memory access, and (b) while GEMM is highly optimized for scientific matrices multiplications, it is not well suited for convolutions. We propose an approach that takes advantage of scalar-matrix multiplication and reduces memory overhead. Our experiments with commonly used network architectures demonstrate a significant speedup compared to existing indirect methods.
Figures
Figures from the paper (4 more)
Reference graph
Works this paper leans on
-
[1]
Hypernetwork-based adap- tive image restoration
Shai Aharon and Gil Ben-Artzi. Hypernetwork-based adap- tive image restoration. In ICASSP 2023 - 2023 IEEE Inter- national Conference on Acoustics, Speech and Signal Pro- cessing (ICASSP), pages 1–5, 2023. 1
work page 2023
-
[2]
Gil Ben-Artzi, Hagit Hel-Or, and Yacov Hel-Or. The gray- code filter kernels. IEEE transactions on pattern analysis and machine intelligence, 29(3):382–393, 2007. 3
work page 2007
-
[3]
An updated set of basic linear algebra subprograms (blas)
L Susan Blackford, Antoine Petitet, Roldan Pozo, Karin Remington, R Clint Whaley, James Demmel, Jack Dongarra, Iain Duff, Sven Hammarling, Greg Henry, et al. An updated set of basic linear algebra subprograms (blas). ACM Trans- actions on Mathematical Software, 28(2):135–151, 2002. 1
work page 2002
-
[4]
Mec: memory-efficient con- volution for deep neural network
Minsik Cho and Daniel Brand. Mec: memory-efficient con- volution for deep neural network. In International Confer- ence on Machine Learning, pages 815–824. PMLR, 2017. 1, 2, 5
work page 2017
-
[5]
The role of redundant bases and shrinkage functions in image denoising
Yacov Hel-Or and Gil Ben-Artzi. The role of redundant bases and shrinkage functions in image denoising. IEEE Transactions on Image Processing, 30:3778–3792, 2021. 1
work page 2021
-
[6]
Yolo- lite: a real-time object detection algorithm optimized for non-gpu computers
Rachel Huang, Jonathan Pedoeem, and Cuixian Chen. Yolo- lite: a real-time object detection algorithm optimized for non-gpu computers. In 2018 IEEE International Conference on Big Data (Big Data), pages 2503–2510. IEEE, 2018. 4, 5
work page 2018
-
[7]
Math kernel library https://software.intel.com/en- us/intel-mkl, 2015
Intel. Math kernel library https://software.intel.com/en- us/intel-mkl, 2015. 5
work page 2015
-
[8]
Speeding up convolutional neural networks with low rank expansions
Max Jaderberg, Andrea Vedaldi, and Andrew Zisserman. Speeding up convolutional neural networks with low rank expansions. arXiv preprint arXiv:1405.3866, 2014. 3
arXiv 2014
Show all 24 references
-
[9]
Caffe: Convolutional architecture for fast feature embedding
Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, and Trevor Darrell. Caffe: Convolutional architecture for fast feature embedding. In Proceedings of the 22nd ACM inter- national conference on Multimedia , pages 675–67...
2014
-
[10]
Imagenet classification with deep convolutional neural net- works
Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep convolutional neural net- works. In Advances in neural information processing sys- tems, pages 1097–1105, 2012. 1, 5
2012
-
[11]
Fast algorithms for convo- lutional neural networks
Andrew Lavin and Scott Gray. Fast algorithms for convo- lutional neural networks. In Proceedings of the IEEE con- ference on computer vision and pattern recognition , pages 4013–4021, 2016. 3
2016
-
[12]
The fast fourier transform
Henri J Nussbaumer. The fast fourier transform. In Fast Fourier Transform and Convolution Algorithms , pages 80–
-
[13]
https : / / docs
Nvidia: Deep learning performance documentation; ten- sor layouts. https : / / docs . nvidia . com / deeplearning/performance/dl-performance- convolutional/index.html. 1
-
[14]
OpenMP application program interface version 3.0, May 2008
OpenMP Architecture Review Board. OpenMP application program interface version 3.0, May 2008. 5
2008
-
[15]
Pytorch: An im- perative style, high-performance deep learning library
Adam Paszke, Sam Gross, Francisco Massa, Adam Lerer, James Bradbury, Gregory Chanan, Trevor Killeen, Zeming Lin, Natalia Gimelshein, Luca Antiga, Alban Desmaison, Andreas Kopf, Edward Yang, Zachary DeVito, Martin Rai- son, Alykhan Tejani, Sasank Chilamkurthy, Benoit Steiner, L...
2019
-
[16]
https : / / pytorch
Pytorch: Channels last memory format. https : / / pytorch . org / tutorials / intermediate / memory_format_tutorial.html. 1
-
[17]
Binary neural networks: A survey
Haotong Qin, Ruihao Gong, Xianglong Liu, Xiao Bai, Jingkuan Song, and Nicu Sebe. Binary neural networks: A survey. Pattern Recognition, 105:107281, 2020. 3
2020
-
[18]
You only look once: Unified, real-time object de- tection
Joseph Redmon, Santosh Divvala, Ross Girshick, and Ali Farhadi. You only look once: Unified, real-time object de- tection. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 779–788, 2016. 4
2016
-
[19]
Learning separable filters
Roberto Rigamonti, Amos Sironi, Vincent Lepetit, and Pas- cal Fua. Learning separable filters. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recogni- tion (CVPR), June 2013. 3
2013
-
[20]
Very deep convo- lutional networks for large-scale image recognition
Karen Simonyan and Andrew Zisserman. Very deep convo- lutional networks for large-scale image recognition. In In- ternational Conference on Learning Representations , 2015. 5
2015
-
[21]
Improving the speed of neural networks on cpus.[(accessed on 1 may 2019)]; deep learning & unsupervised feature learning workshop nips
V Vanhoucke and MZ Mao. Improving the speed of neural networks on cpus.[(accessed on 1 may 2019)]; deep learning & unsupervised feature learning workshop nips. 1
2019
-
[22]
Arithmetic complexity of computations , volume 33
Shmuel Winograd. Arithmetic complexity of computations , volume 33. Siam, 1980. 3
1980
-
[23]
Effi- cient mobile implementation of a cnn-based object recogni- tion system
Keiji Yanai, Ryosuke Tanno, and Koichi Okamoto. Effi- cient mobile implementation of a cnn-based object recogni- tion system. In Proceedings of the 24th ACM international conference on Multimedia, pages 362–366, 2016. 2
2016
-
[24]
High performance zero-memory overhead direct convolutions
Jiyuan Zhang, Franz Franchetti, and Tze Meng Low. High performance zero-memory overhead direct convolutions. In International Conference on Machine Learning , pages 5776–5785. PMLR, 2018. 1, 3, 4
2018
Reviewed August 12, 2026 · model on record in the stance chip above.
Discussion (0). Continue with ORCID to comment.