[论文解读] FFT Convolutions are Faster than Winograd on Modern CPUs, Here is Why
本文表明,与普遍认为相反,基于FFT的卷积在现代多核和众核CPU上优于基于Winograd的卷积。通过Roofline性能建模,作者证明,FFT方法在高算术强度和更好的内存带宽利用率方面表现更优,尤其是在使用大tile尺寸时,尽管其操作次数更多,但性能仍更优,尤其在计算-内存比高的系统中。
Winograd-based convolution has quickly gained traction as a preferred approach to implement convolutional neural networks (ConvNet) on various hardware platforms because it requires fewer floating point operations than FFT-based or direct convolutions. This paper compares three highly optimized implementations (regular FFT--, Gauss--FFT--, and Winograd--based convolutions) on modern multi-- and many--core CPUs. Although all three implementations employed the same optimizations for modern CPUs, our experimental results with two popular ConvNets (VGG and AlexNet) show that the FFT--based implementations generally outperform the Winograd--based approach, contrary to the popular belief. To understand the results, we use a Roofline performance model to analyze the three implementations in detail, by looking at each of their computation phases and by considering not only the number of floating point operations, but also the memory bandwidth and the cache sizes. The performance analysis explains why, and under what conditions, the FFT--based implementations outperform the Winograd--based one, on modern CPUs.
研究动机与目标
- 挑战普遍认为基于Winograd的卷积在CPU上进行深度学习推理时更优的信念。
- 比较高度优化的基于FFT(常规和Gauss-FFT)与基于Winograd的卷积实现,在现代多核和众核CPU上的性能表现。
- 使用Roofline模型分析性能差异,重点关注算术强度、内存带宽、缓存效应和计算-内存比。
- 确定FFT方法在数据移动和可扩展性方面优于Winograd方法的条件。
- 为现代CPU(支持AVX2/AVX512)提供开放源码的、高度优化的FFT与Winograd卷积实现。
提出的方法
- 实现了三种高度优化的卷积核:常规FFT、Gauss-FFT和基于Winograd的卷积,全部针对支持AVX2或AVX512指令集的现代CPU。
- 应用标准CPU优化技术,包括循环分块、数据布局转换和向量化操作,以确保三种方法之间的公平比较。
- 使用Roofline性能模型分析每种方法的计算阶段,重点关注算术强度、内存带宽和缓存行为。
- 通过查找表估算操作次数和算术强度,量化不同tile尺寸和卷积核尺寸下的操作成本和数据移动成本。
- 在10种现代CPU系统上,使用VGG和AlexNet网络进行端到端基准测试,以测量实际性能差异。
- 通过实测验证理论预测,将实现结果与MKL-DNN和LIBXSMM等先进库进行对比。
实验结果
研究问题
- RQ1为何基于FFT的卷积在现代CPU上尽管需要更多浮点运算,却仍优于基于Winograd的卷积?
- RQ2在何种条件下,FFT方法更高的算术强度能使其在操作数更多的情况下仍优于Winograd方法?
- RQ3内存带宽、缓存大小和数据移动成本如何影响现代CPU架构上FFT与Winograd方法的相对性能?
- RQ4Winograd方法的数值不稳定性在多大程度上限制了tile尺寸,从而影响其在CPU上的性能?
- RQ5现代CPU的计算-内存比在多大程度上影响了基于FFT的卷积相对于基于Winograd的卷积的性能优势?
主要发现
- 平均而言,基于FFT的卷积(常规和Gauss-FFT)在多个现代CPU系统上均优于基于Winograd的卷积,且随着计算-内存比的提高,性能差距进一步扩大。
- 常规FFT和Gauss-FFT方法因涉及复数运算,实现了更高的算术强度,从而更好地利用了现代CPU的计算-内存失衡特性。
- Winograd方法的数值不稳定性限制了tile尺寸至极小值,从而削弱了其减少冗余计算的能力,而FFT方法可支持任意大的tile尺寸。
- 尽管需要更多浮点运算,基于FFT的方法仍能实现更优性能,原因在于其显著降低了数据移动成本并更有效地利用了缓存层次结构。
- 在计算-内存比高的系统(如20–40)中,基于FFT的方法比基于Winograd的方法快得多,尤其在VGG和AlexNet的深层或宽层中表现更优。
- 实测结果表明,在支持AVX512的系统上,基于FFT的实现优于MKL-DNN和LIBXSMM等先进库,尤其在非3×3卷积核上表现更佳。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。