Skip to main content
QUICK REVIEW

[论文解读] Parallel Multi Channel Convolution using General Matrix Multiplication

Aravind Vasudevan, Andrew Anderson|arXiv (Cornell University)|Apr 6, 2017
Advanced Neural Network Applications参考文献 7被引用 13
一句话总结

本文提出了一种基于GEMM的多通道多核(MCMK)卷积方法,通过直接在非复制的输入图像上操作,避免了im2col转换带来的内存开销。通过将卷积重构成一系列具有改进数据局部性的GEMM操作,该方法在多种CNN架构下,于CPU和嵌入式ARM处理器上均实现了比im2col更快的推理速度。

ABSTRACT

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.

研究动机与目标

  • 解决深度学习框架中im2col转换导致的高内存占用和较差数据局部性问题。
  • 在无需数据复制的情况下,实现对优化GEMM库在MCMK卷积中的高效利用。
  • 通过减少内存访问和提升数据重用,改善内存受限系统(如嵌入式处理器)的性能。
  • 评估基于GEMM的MCMK卷积在不同CNN层和硬件平台上的性能表现。
  • 开发一个成本模型,用于根据架构上下文选择最优的MCMK卷积实现方式。

提出的方法

  • 该方法将MCMK卷积表述为一个或多个GEMM操作,无需将输入展开为列矩阵,从而避免数据复制。
  • 引入kn2row算法,通过一次GEMM调用并结合后续的累加处理步骤,整合部分结果。
  • 该方法保持对输入特征图的直接访问,保留空间局部性,减少内存访问流量。
  • 针对CPU和ARM Cortex-A57处理器,实现了多种方法变体并进行了调优,使用高度优化的GEMM库。
  • 该方法利用现有的、预先调优的GEMM例程,有效利用硬件级并行性和内存层次结构。
  • 设计避免了im2col的Toeplitz矩阵构建方式,而是将卷积操作直接映射到GEMM,最大限度减少数据移动。

实验结果

研究问题

  • RQ1MCMK卷积能否在不使用im2col转换的情况下,通过GEMM高效实现,从而降低内存占用并改善数据局部性?
  • RQ2基于GEMM的MCMK卷积在不同CNN架构和硬件平台上的性能与im2col相比如何?
  • RQ3在CPU和嵌入式ARM处理器上,哪种基于GEMM的MCMK变体性能最佳?
  • RQ4基于GEMM的MCMK卷积性能是否在CNN的不同层(如浅层与深层)间存在显著差异?
  • RQ5决定特定硬件和网络配置下MCMK实现最优选择的关键因素是什么?

主要发现

  • 所提出的基于GEMM的MCMK卷积方法在大多数测试场景下,于CPU和ARM处理器上均优于im2col。
  • 在Intel i5-4570 CPU上,新方法在大多数网络层和卷积核尺寸下均实现了比im2col更快的推理速度。
  • 在ARM Cortex-A57嵌入式处理器上,基于GEMM的方法显著降低了内存压力,并相比im2col提升了性能。
  • 性能在不同CNN层之间存在显著差异,不存在一种在所有情况下都最优的单一方法。
  • kn2row变体(使用一次GEMM调用后接累加处理)实现了优异的数据局部性和强劲性能。
  • 结果表明,需要建立一个成本模型,以根据硬件和网络上下文指导MCMK卷积实现的选择。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。