中文

现代 CPU 上 FFT 卷积快于 Winograd 卷积的原因

性能 2018-09-24 v1

摘要

基于 Winograd 的卷积因其比基于 FFT 或直接卷积需要更少的浮点运算,已迅速成为在各种硬件平台上实现卷积神经网络(ConvNet)的首选方法。本文在现代多核与众核 CPU 上比较了三种高度优化的实现(常规 FFT、Gauss-FFT 和基于 Winograd 的卷积)。尽管三种实现都采用了针对现代 CPU 的相同优化,我们使用两个流行的 ConvNet(VGG 和 AlexNet)进行的实验结果表明,基于 FFT 的实现通常优于基于 Winograd 的方法,这与普遍看法相反。为理解该结果,我们使用 Roofline 性能模型详细分析三种实现,考察各自的计算阶段,并不仅考虑浮点运算数量,还考虑内存带宽与缓存大小。该性能分析解释了在现代 CPU 上基于 FFT 的实现为何以及在何种条件下优于基于 Winograd 的实现。

关键词

引用

@article{arxiv.1809.07851,
  title  = {FFT Convolutions are Faster than Winograd on Modern CPUs, Here is Why},
  author = {Aleksandar Zlateski and Zhen Jia and Kai Li and Fredo Durand},
  journal= {arXiv preprint arXiv:1809.07851},
  year   = {2018}
}