[論文レビュー] A Systematic Approach to Blocking Convolutional Neural Networks
この論文は、複数レベルのメモリ階層にわたる畳み込み計算のブロッキングを直接行うことで、畳み込みニューラルネットワーク(CNN)におけるメモリアクセスを最適化する解析的モデルを提示している。ループブロッキングとメモリ階層設計を共同最適化することにより、CPUではメモリトラフィックとエネルギー消費を最大90%削減し、カスタムハードウェアではエネルギー効率を最大13倍向上させ、データの複製によって局所性を失うGEMMベースの手法を上回る。
Convolutional Neural Networks (CNNs) are the state of the art solution for many computer vision problems, and many researchers have explored optimized implementations. Most implementations heuristically block the computation to deal with the large data sizes and high data reuse of CNNs. This paper explores how to block CNN computations for memory locality by creating an analytical model for CNN-like loop nests. Using this model we automatically derive optimized blockings for common networks that improve the energy efficiency of custom hardware implementations by up to an order of magnitude. Compared to traditional CNN CPU implementations based on highly-tuned, hand-optimized BLAS libraries,our x86 programs implementing the optimal blocking reduce the number of memory accesses by up to 90%.
研究の動機と目的
- 既存の実装における大きなワーキングセットと悪いデータ局所性により、CNN推論における高いメモリエネルギーコストを低減すること。
- GEMMベースのCNN実装の限界を克服し、データの複製によってメモリトラフィックが増加することを防ぐこと。
- 最大のエネルギー効率を実現するため、ループブロッキングとメモリ階層を共同最適化する解析的モデルを開発すること。
- CPUおよびカスタムハードウェアの両方において、CNNの膨大なブロッキングパラメータ空間を体系的に探索可能にする仕組みを提供すること。
- 直接的なCNNブロッキングが、GEMMベースのアプローチに比べて優れた局所性とエネルギー効率を実現することを示すこと。
提案手法
- 著者らは、複数レベルのメモリ階層にわたるメモリエネルギーとトラフィックを定量化する、CNNに類似したループネスト用の解析的モデルを構築した。
- このモデルにより、最適なスケジュールを特定するための網羅的またはヒューリスティックな探索が、可能なブロッキング構成に対して可能になる。
- エネルギー消費量を最小限に抑えるために、ループブロッキングとメモリ階層設計を共同最適化する手法を採用した。
- このフレームワークは、CPUソフトウェア実装およびカスタムハードウェア設計(FPGAおよびASICシステムを含む)の両方へ適用可能である。
- 実際のハードウェアパラメータとエネルギーモデルを用いて、標準的なCNNレイヤー(例:Conv1、Conv2)を対象に検証を行った。
- 単一コアおよびマルチコアシステムをサポートし、共有メモリアーキテクチャにおけるブロードキャストエネルギーの最小化に重点を置いた。
実験結果
リサーチクエスチョン
- RQ1CNNのブロッキングを体系的に最適化することで、メモリ局所性を向上させ、エネルギー消費を低減する方法は何か?
- RQ2GEMMベースのアプローチと直接畳み込みブロッキングの違いが、メモリトラフィックとエネルギー効率に与える影響は何か?
- RQ3ループブロッキングとメモリ階層設計を共同で設計することで、CNNハードウェアにおけるエネルギー効率にどのような影響を与えるか?
- RQ4最適化されたCNNシステムにおいて、メモリサイズ、チップ面積、エネルギー効率の間のトレードオフは何か?
- RQ5複数コアにわたる並列処理を実行する際、大容量のオンチップバッファを用いることで、エネルギー効率にどのような影響があるか?
主な発見
- 直接的なCNNブロッキングにより、GEMMベースのCPU実装と比較して、メモリアクセスを最大90%削減でき、エネルギー効率が著しく向上した。
- 8MBのオンチップSRAMを備えた最適なメモリ階層は、ベースラインのDianNaoシステムと比較して、エネルギー効率を少なくとも13倍向上させた。
- オンチップメモリが1MBのみの状態でも、エネルギー効率は10倍向上し、DianNaoと比較してチップ面積は6倍しか増加しなかった。
- 最適システムでは、メモリアクセスエネルギーと計算エネルギーの比が、DianNaoの20倍から1倍未満に低下し、計算がエネルギー消費の主因となった。
- 複数コアに大容量のオンチップバッファを共有することで、ブロードキャストエネルギーが削減され、コア数の増加に伴いスケーラブルなエネルギー効率の向上が可能になった。
- フレームワークにより、GPUは低精度CNNワークロードの高エネルギー効率を達成するため、より深いメモリ階層とより小さなレジスタファイルを必要とすることが判明した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。