Skip to main content
QUICK REVIEW

[论文解读] High Performance Zero-Memory Overhead Direct Convolutions

Jiyuan Zhang, Franz Franchetti|arXiv (Cornell University)|Sep 20, 2018
Advanced Neural Network Applications参考文献 18被引用 32
一句话总结

本文提出了一种高性能的直接卷积实现方法,在CPU上相比最先进的基于矩阵乘法的卷积方法,性能提升达10%至400%,且无任何内存开销。通过使用优化的数据布局和高效的循环分块技术,该方法消除了数据打包的开销,并在性能上超越了经过专家调优的BLAS例程,同时在多线程环境下具有出色的可扩展性。

ABSTRACT

The computation of convolution layers in deep neural networks typically rely on high performance routines that trade space for time by using additional memory (either for packing purposes or required as part of the algorithm) to improve performance. The problems with such an approach are two-fold. First, these routines incur additional memory overhead which reduces the overall size of the network that can fit on embedded devices with limited memory capacity. Second, these high performance routines were not optimized for performing convolution, which means that the performance obtained is usually less than conventionally expected. In this paper, we demonstrate that direct convolution, when implemented correctly, eliminates all memory overhead, and yields performance that is between 10% to 400% times better than existing high performance implementations of convolution layers on conventional and embedded CPU architectures. We also show that a high performance direct convolution exhibits better scaling performance, i.e. suffers less performance drop, when increasing the number of threads.

研究动机与目标

  • 解决基于矩阵乘法的卷积实现中因数据打包导致的高内存开销和性能下降问题。
  • 证明当经过充分优化时,直接卷积在性能和内存效率方面可超越高度调优的基于矩阵乘法的例程。
  • 设计输入、输出和卷积核权重的新数据布局,其内存开销仅与标准存储相同,无需额外内存。
  • 在多核CPU上实现卷积的高效并行化,且随着线程数量增加,性能下降最小。
  • 为该方法向GPU移植及优化反向传播计算提供基础。

提出的方法

  • 提出一种自定义的直接卷积内核,无需任何中间数据打包或复制即可计算卷积。
  • 引入输入特征图、输出特征图和卷积核权重的新颖数据布局,在保持内存效率的同时实现高算术强度。
  • 采用循环分块和线程级并行化,以在CPU架构上最大化数据重用和缓存效率。
  • 使用自动调优或分析技术,识别循环嵌套的最佳分块参数,以最大化性能。
  • 重用现有的GPU优化操作(如StridedBatchedGemm),通过cuBLAS 8.0实现向NVIDIA GPU的潜在可移植性。
  • 以SGEMM和基于矩阵乘法的例程为基准,对性能进行归一化,以展示相对性能提升。

实验结果

研究问题

  • RQ1直接卷积实现是否能在原始性能和内存效率方面超越高度优化的基于矩阵乘法的卷积例程?
  • RQ2消除数据打包是否能消除现有深度学习推理流水线中的主要性能瓶颈?
  • RQ3在多核CPU上,直接卷积的并行可扩展性与基于矩阵乘法的方法相比如何?
  • RQ4直接卷积是否能在包括Intel、AMD和ARM在内的多种CPU架构上实现接近峰值性能?
  • RQ5所提出的直接卷积方法是否可通过现有优化内核实现向GPU架构的可移植性?

主要发现

  • 所提出的直接卷积实现性能比基于SGEMM的实现高出10%至400%,甚至超越了Intel MKL等专家调优的BLAS库。
  • 该方法不产生任何内存开销,因为它避免了所有数据打包和复制,因此特别适合内存受限的嵌入式和边缘设备。
  • 随着线程数量增加,每核性能下降极小,表明其在可扩展性方面优于基于矩阵乘法的方法。
  • 该实现分别在Intel、AMD和ARM架构上达到了理论峰值性能的87.5%、58.2%和88.9%。
  • 该方法可高效扩展至物理核心数量,仅当线程数超过核心数时性能出现显著下降,表明资源利用高效。
  • 作者证明,通过自动调优或对循环分块参数的分析优化,可缩小直接卷积与SGEMM在HPC矩阵上的性能差距。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

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