Skip to main content
QUICK REVIEW

[論文レビュー] FFT Convolutions are Faster than Winograd on Modern CPUs, Here is Why

Aleksandar Zlateski, Zhen Jia|arXiv (Cornell University)|Sep 20, 2018
Tensor decomposition and applications参考文献 20被引用数 16
ひとこと要約

この論文は、一般的な認識とは反して、現代のマルチコアおよびマニーコアCPUにおいて、FFTベースの畳み込みがWinogradベースの畳み込みを上回ることを示している。 Roofline性能モデルを用いて、特に大きなタイルサイズを用いる際、FFT手法が演算数が多くても、より高い算術強度と優れたメモリ帯域幅の利用度のおかげで優れた性能を発揮することを著者らは示している。これは、計算対メモリ比が高いシステムにおいて顕著である。

ABSTRACT

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.

研究の動機と目的

  • CPUにおけるディープラーニング推論において広く信じられているWinogradベースの畳み込みが優れているという考えに挑戦すること。
  • 現代のマルチコアおよびマニーコアCPU上で、高度に最適化されたFFTベース(通常およびGauss-FFT)およびWinogradベースの畳み込み実装の性能を比較すること。
  • 算術強度、メモリ帯域幅、キャッシュ効果、計算対メモリ比に注目したRooflineモデルを用いて、性能差を分析すること。
  • FFTベースの手法がWinogradベースの手法を上回る条件、特にデータ移動とスケーラビリティの観点から特定すること。
  • 現代のCPU(AVX2/AVX512)向けに、FFTおよびWinograd畳み込みのオープンソースで高度に最適化された実装を提供すること。

提案手法

  • AVX2またはAVX512命令セットを対象とした、通常FFT、Gauss-FFT、Winogradベースの3つの高度に最適化された畳み込みカーネルを実装した。
  • 公平な比較を確保するため、標準的なCPU最適化(ループタイリング、データレイアウト変換、ベクトル化演算)をすべての3つの手法に適用した。
  • 各手法の計算フェーズを分析するため、Roofline性能モデルを用い、算術強度、メモリ帯域幅、キャッシュ動作に注目した。
  • タイルサイズおよびカーネルサイズのさまざまな組み合わせにおいて、各手法の演算数とデータ移動コストを定量化し、演算数および算術強度の推定にためのルックアップテーブルを用いた。
  • VGGおよびAlexNetネットワークを用いて、10台の現代CPUシステムでエンドツーエンドのベンチマークを実施し、実世界の性能差を測定した。
  • 理論的予測を実測値と照合し、MKL-DNNやLIBXSMMといった最先端のライブラリとの比較を通じて、実装の妥当性を検証した。

実験結果

リサーチクエスチョン

  • RQ1FFTベースの畳み込みは、より多くの浮動小数点演算を要するにもかかわらず、なぜ現代のCPUでWinogradベースの畳み込みを上回るのか?
  • RQ2FFT手法の高い算術強度は、演算数が多くても、どのような条件下でWinogradを上回る性能を発揮するのか?
  • RQ3メモリ帯域幅、キャッシュサイズ、データ移動コストは、現代のCPUアーキテクチャにおけるFFTとWinogradの相対的性能にどのように影響するか?
  • RQ4Winograd手法の数値的不安定性は、タイルサイズを非常に小さく制限し、CPU上での性能にどのような影響を及えるか?
  • RQ5現代のCPUの計算対メモリ比は、FFTベースの手法がWinogradベースの手法を上回る性能を発揮する要因にどのように寄与するか?

主な発見

  • 平均して、FFTベースの畳み込み(通常およびGauss-FFT)は、複数の現代CPUシステムにおいてWinogradベースの畳み込みを上回っており、計算対メモリ比が高くなるほど性能差が拡大する。
  • 通常FFTおよびGauss-FFT手法は、複素数演算のおかげで高い算術強度を達成しており、これにより現代CPUの計算対メモリの不均衡を効果的に活用できる。
  • Winogradの数値的不安定性により、タイルサイズが非常に小さな値に制限され、冗長な計算の削減が困難になる一方、FFT手法は任意の大きなタイルサイズをサポートできる。
  • 浮動小数点演算数が多くても、FFTベースの手法はデータ移動コストを低減し、キャッシュ階層を効果的に活用できるため、性能が優れる。
  • 計算対メモリ比が高め(例:20–40)のシステムでは、FFTベースの手法は特にVGGやAlexNetの深く広い層において、Winogradを大幅に上回る速度を発揮する。
  • 実測結果から、FFTベースの実装は、AVX512対応システムにおいて、MKL-DNN や LIBXSMM といった最先端のライブラリを上回ることが示された。特に3×3でないカーネルにおいて顕著である。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。