[論文レビュー] Enabling Sparse Winograd Convolution by Native Pruning
この論文は、Winograd畳み込み層におけるネイティブなプルーニング手法を導入し、ImageNet上で0.1%の精度損失でWinogradパラメータに90%以上のスパarsityを達成した。これにより、Intel Xeon CPU上で、密行列の直接畳み込みに対して5.4倍の高速化、理想的な密行列Winograd畳み込みに対して2.1倍の高速化を達成した。これは、カスタム実装されたスパースWinogradカーネルがスパarsityを効果的に活用した結果である。
Sparse methods and the use of Winograd convolutions are two orthogonal approaches, each of which significantly accelerates convolution computations in modern CNNs. Sparse Winograd merges these two and thus has the potential to offer a combined performance benefit. Nevertheless, training convolution layers so that the resulting Winograd kernels are sparse has not hitherto been very successful. By introducing a Winograd layer in place of a standard convolution layer, we can learn and prune Winograd coefficients "natively" and obtain sparsity level beyond 90% with only 0.1% accuracy loss with AlexNet on ImageNet dataset. Furthermore, we present a sparse Winograd convolution algorithm and implementation that exploits the sparsity, achieving up to 31.7 effective TFLOP/s in 32-bit precision on a latest Intel Xeon CPU, which corresponds to a 5.4x speedup over a state-of-the-art dense convolution implementation.
研究の動機と目的
- 空間ドメインでのプルーニングが非可逆的変換のため困難であるため、Winograd畳み込みカーネルにおける高いスパarsityを達成する課題を克服すること。
- 空間パラメータとWinogradパラメータの不一致を解消するため、標準畳み込み層の代わりにWinograd係数を直接学習・プルーニングするネイティブWinograd層を導入すること。
- 現代のCPU上で実用的な推論高速化を実現するため、高いスパarsityを効果的に活用する最適化されたスパースWinograd畳み込み実装を開発すること。
- ネイティブなWinogradドメインでのプルーニングが、空間ドメインでのプルーニングよりも高い表現力とより効果的なプルーニングを可能にすることを示すこと。
提案手法
- 空間カーネルの代わりにWinograd係数を直接パラメータ化・学習するWinograd層に、標準畳み込み層を置き換える。
- 勾配に基づくしきい値処理とL1正則化を用いて、Winogradドメインで直接Winograd係数をプルーニングし、空間ドメインでのプルーニングに依存せずに高いスパarsityを達成する。
- 空間からWinogradパラメータへの非可逆的変換が根本的な障壁となるが、両ドメインを同時に最適化する必要を排除することでこれを回避する。
- ゼロ演算をスキップし、最適化されたメモリアクセスと計算パターンを用いることで、スパarsityを効率的に活用するカスタムスパースWinograd畳み込みカーネルを設計する。
- 効果的なメモリレイアウトとスレーディングを備えた高度に最適化されたカーネルを用い、Intel Xeon CPU上にスパースWinogradカーネルを実装する。
- 有効FLOP/sを指標として、密行列直接畳み込み、理想的な密行列Winograd、スパース直接畳み込みの実装と比較して性能を評価する。
実験結果
リサーチクエスチョン
- RQ1Winogradドメインで直接プルーニングすることで、顕著な精度低下を伴わず、Winograd畳み込みカーネルに高いスパarsityを達成できるか?
- RQ2従来の空間ドメインでのプルーニングが、意味のあるWinogradスパarsityを生まない理由は何か? そして、これをどのように克服できるか?
- RQ3ネイティブWinograd層アーキテクチャは、空間とWinogradパラメータを同時に最適化する手法よりも、より効果的かつ一貫性のあるプルーニングを可能にするか?
- RQ4現代のCPU上で、高いスパarsityを効果的に活用するカスタムスパースWinograd畳み込み実装により、どの程度の性能向上が達成できるか?
- RQ5ネイティブプルーニングとスパースWinograd畳み込みの組み合わせは、従来のスパースまたはWinograd専用アプローチよりも効果的か?
主な発見
- ネイティブWinogradドメインでのプルーニングにより、AlexNetの3×3および5×5畳み込み層で90.6%~95.8%のスパarsityが達成され、トップ-1精度は0.1%の低下にとどまった。
- Intel Xeon Platinum 8180 CPU上で、密行列直接畳み込みに対して5.4倍、理想的な密行列Winograd畳み込みに対して2.1倍の高速化を達成した。
- Winogradドメインにおけるスパarsityは空間ドメインよりも顕著に高い:空間プルーニングでは約85%のスパarsityが達成されるが、変換後は25~70%に低下する。これは、ネイティブプルーニングの優位性を示している。
- スパースWinogradカーネル実装は、32ビット精度で最大31.7有効TFLOP/sを達成し、現代のサーバークラスCPUにおける高い計算効率を示した。
- Winograd空間では、空間ドメインに存在しない孤立した非ゼロ係数といった、独自のプルーニングパターンが可能であり、より高い表現力とプルーニングの柔軟性を示している。
- 本手法は、スパース直接畳み込みおよび理想的な密行列Winograd畳み込みを上回り、ネイティブプルーニングとスパースWinograd計算の組み合わせの有効性を実証した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。