[論文レビュー] Characterizing and Demystifying the Implicit Convolution Algorithm on Commercial Matrix-Multiplication Accelerators
本稿では、GoogleのTPU やNVIDIAのTensor Cores などのGEMMベースのアクセラレータ上で、ほぼゼロのパフォーマンスおよびメモリオーバーヘッドで、メモリ効率的かつハードウェアフレンドリーな暗黙的im2colアルゴリズムを提案する。畳み込みの結合則および可換性を活用し、メモリレイアウトとタイリングを最適化することで、オンチップメモリアクセスと計算を完全に重ね合わせ、特許権のある実装と同等またはそれ以上のパフォーマンスを達成する。
Many of today's deep neural network accelerators, e.g., Google's TPU and NVIDIA's tensor core, are built around accelerating the general matrix multiplication (i.e., GEMM). However, supporting convolution on GEMM-based accelerators is not trivial. The naive method explicitly lowers the convolution to GEMM, commonly known as im2col, which introduces significant performance and memory overhead. Existing implicit im2col algorithms require unscalable hardware and are inefficient in supporting important convolution variants such as strided convolution. In this paper, we propose a memory-efficient and hardware-friendly implicit im2col algorithm used by Google's TPU, which dynamically converts a convolution into a GEMM with practically zero performance and memory overhead, fully unleashing the power of GEMM engines. Through comprehensive experimental results, we quantitatively argue that this algorithm has been adopted in commercial closed-source platforms, and we are the first to describe its high-level idea and implementation details. Finally, we show that our algorithm can also be generally applied to Nvidia's Tensor Cores (TC), matching and out-performing the measured performance on TCs.
研究の動機と目的
- TPU やGPU などのGEMMベースのDNNアクセラレータにおける、明示的im2colの高いメモリおよびパフォーマンスオーバーヘッドに対処すること。
- 商業用アクセラレータで使用されているハードウェアフレンドリーな暗黙的im2colアルゴリズムの初の公開可能な実装を逆スペックし、記述すること。
- 提案された暗黙的im2col手法が、TPU およびNVIDIAのTensor Cores において、特許権のある実装と同等またはそれを上回るパフォーマンスを達成し、ほぼゼロのオーバーヘッドを実現することを示すこと。
- TPUシミュレータおよびGPU実装をオープンソース化することで、DNNアクセラレーション分野における広範な研究と最適化を可能にすること。
提案手法
- 畳み込みの結合則および可換性を活用し、明示的なデータ変換を回避するチャンネルファーストの暗黙的im2colアルゴリズムを提案する。
- システムアレイ上で計算とオフチップメモリアクセスを完全に重ね合わせることが可能な、メモリレイアウトとタイリング戦略を設計する。
- クラウドTPUv2 との比較で平均5%未満の誤差率を達成する、サイクルレベルの可変パラメータを持つTPUシミュレータを開発する。
- グローバルメモリアクセスのスターバイを最小限に抑えるために、タイル再順序付けを用いたブロック化im2colアプローチをNVIDIA Tensor Cores に適応する。
- タイル間のデータ再利用を最適化することで、オンチップデータ局所性を向上させ、グローバルメモリ帯域幅の圧力を軽減する。
- V100 GPU 上でソフトウェア実装を行い、著者には利用不可能なマイクロ最適化を用いてcuDNN とパフォーマンスを比較する。

実験結果
リサーチクエスチョン
- RQ1GEMM特化アクセラレータ(TPU やTensor Cores など)上で、最小限のパフォーマンスおよびメモリオーバーヘッドで畳み込みをGEMMに効率的にマッピングする方法は何か?
- RQ2暗黙的im2colが明示的im2colのメモリおよび計算コストを回避するための、アーキテクチャ的およびアルゴリズム的技術は何か?
- RQ3先行研究における既存の暗黙的im2col手法が、TPU などの大規模商業アクセラレータには不適切である理由は何か?
- RQ4一般化可能でオープンソースの暗黙的im2colアルゴリズムを、システムアレイおよび最新のGPU Tensor Cores 両方で実装し、競争力のあるパフォーマンスを達成できるか?
- RQ5メモリレイアウト、タイリング、およびデータ再利用は、GEMMアクセラレータでの高性能達成にどのような役割を果たすか?
主な発見
- 提案された暗黙的im2col手法は、明示的なデータ変換を伴わず、畳み込みをGEMMに動的にマッピングすることで、ほぼゼロのパフォーマンスおよびメモリオーバーヘッドを実現する。
- TPU では、オフチップメモリアクセスと計算を完全に重ね合わせることで、無駄な待機時間を削減し、ハードウェアの利用効率を最大化する。
- V100 GPU では、バッチサイズ8においてcuDNN と1%未満の差でパフォーマンスを達成し、特許権のあるコードと同等の競争力を持つことを示した。
- ストライド付き畳み込みでは、平均20%、最良で40%の高速化が達成され、非ユニットストライド演算の処理において優位性を示した。
- タイル間再利用最適化により、グローバルメモリアクセスの負荷が高いGPUワークロードで平均16.7%のパフォーマンス向上が得られた。
- 著者らのTPUv2 シミュレータは、実際のクラウドTPUv2 測定値と比較して平均5%未満の誤差率を達成し、その正確性を検証した。

より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。