[論文レビュー] Snowflake: A Model Agnostic Accelerator for Deep Convolutional Neural Networks
Snowflake は、動的トレースベースのメモリアクセスとデュアルバッファリングを活用することで、現代のディープラーニングモデル全体で91%を超える計算効率を達成するモデルに依存しないFPGAベースのCNNアクセラレータである。Snowflake は128 G-ops/sのピークスループットを達成し、Xilinx Zynq XC7Z045デバイス(256 MACユニット、250 MHz)上でAlexNetを100 FPS、GoogLeNetを36.4 FPS、ResNet-50を17 FPSで処理する。
Deep convolutional neural networks (CNNs) are the deep learning model of choice for performing object detection, classification, semantic segmentation and natural language processing tasks. CNNs require billions of operations to process a frame. This computational complexity, combined with the inherent parallelism of the convolution operation make CNNs an excellent target for custom accelerators. However, when optimizing for different CNN hierarchies and data access patterns, it is difficult for custom accelerators to achieve close to 100% computational efficiency. In this work, we present Snowflake, a scalable and efficient accelerator that is agnostic to CNN workloads, and was designed to always perform at near-peak hardware utilization. Snowflake is able to achieve a computational efficiency of over 91% on modern CNN models. Snowflake, implemented on a Xilinx Zynq XC7Z045 SoC is capable of achieving a peak throughput of 128G-ops/s and a measured throughput of 100 frames per second and 120 G-ops/s on the AlexNet CNN model, 36 frames per second and 116G- ops/s on the GoogLeNet CNN model and 17 frames per second and 122 G-ops/s on the ResNet-50 CNN model. To the best of our knowledge, Snowflake is the only implemented system capable of achieving over 91% efficiency on modern CNNs and the only implemented system with GoogLeNet and ResNet as part of the benchmark suite.
研究の動機と目的
- 多様なネットワークアーキテクチャにわたる不規則なデータアクセスパターンにより、カスタムCNNアクセラレータで生じる計算効率の低さという課題に取り組む。
- 再構成を必要とせず、さまざまなCNNワークロードで高い利用率を維持できるスケーラブルでモデルに依存しないアクセラレータを設計する。
- 知的なメモリアクセススケジューリングにより、DRAM遅延を効果的に隠すことで、ピークに近いハードウェア利用率を達成する。
- GoogLeNet や ResNet-50 といった複雑な最新のCNNでリアルタイム推論を可能にする。これらのモデルは、従来のアクセラレータ研究ではめったにベンチマークに使われていない。
- FPGAプラットフォーム上で高い効率とスループットを実現し、FPGAベースのCNNアクセラレータの新たなベンチマークを確立する。
提案手法
- トレースベースのメモリアクセススケジューリング機構を採用し、重みと特徴マップの予測とプリフェッチを実施することで、無駄なサイクルを最小限に抑える。
- デュアルバッファリングを実装し、計算とDRAMデータ転送を重ねることで、DRAM遅延を効果的に隠す。
- 複数のコンピューティングクラスタで構成されるスケーラブルなアーキテクチャを採用し、各クラスタに256個のMACユニットを搭載することで、さまざまなワークロードに対応する。
- 特定のネットワーク構造から抽象化することで、モデルに依存しないアクセラレータを実現し、多様なCNNにシームレスに展開可能にする。
- 制御論理用のプロセッシングユニットと、カスタムハードウェアアクセラレーション用のプログラマブルロジックを備えたXilinx Zynq XC7Z045 SoCを活用する。
- 個々のレイヤーではなく、完全なネットワーク推論を用いた性能モデリングとベンチマークを実施し、現実的な効率測定を保証する。
実験結果
リサーチクエスチョン
- RQ1モデルに依存しないCNNアクセラレータは、AlexNet、GoogLeNet、ResNet-50のような多様な現代のCNNアーキテクチャで一貫して高い計算効率を達成できるか?
- RQ2トレースベースのプリフェッチとデュアルバッファリングを用いることで、面積や消費電力効率を損なわず、CNNアクセラレータにおけるDRAM遅延をどの程度隠すことができるか?
- RQ3個々のレイヤーではなく、完全なネットワークを対象とした評価において、カスタムFPGAベースのアクセラレータは、従来のASICおよびFPGAアクセラレータと比べてどの程度の計算効率を示すか?
- RQ41つの再構成可能なハードウェア設計を用いて、複雑でパrameterが多いCNN(例:GoogLeNet や ResNet-50)で、高いスループットと低遅延を同時に達成できるか?
- RQ5大規模なCNNでピーク性能に近い性能を達成しつつ、高い効率を維持できるように、FPGAベースのアクセラレータをスケーリングすることは可能か?
主な発見
- Snowflake は、AlexNetで95%、GoogLeNetで91%、ResNet-50で95%の計算効率を達成し、これらのモデルで実装されたすべての先行アクセラレータを上回っている。
- Xilinx Zynq XC7Z045上で、Snowflake はAlexNetで120 G-ops/s、100 FPS、GoogLeNetで116.4 G-ops/s、36.4 FPS、ResNet-50で122 G-ops/s、17 FPSを達成している。
- 同じデバイス上で、Snowflake はピークスループット128 G-ops/sを達成し、DRAM遅延を効果的に隠すことで、測定された性能が常にピークに近い水準を維持している。
- Snowflake は、GoogLeNet と ResNet-50 の両方をベンチマークに使用した最初の実装アクセラレータであり、AlexNet や VGG よりも複雑なモデルを対象としている。
- デュアルバッファリングとトレースベーススケジューリングにより、DRAM遅延の有無に関わらず一貫したパフォーマンスと効率を維持している。
- 同じFPGA上でMACユニットを768個(3つのコンピューティングクラスタ)にスケーリングすれば、ピーク性能は384 G-ops/sに達し、効率を一定に保ったまま高スループットのサーバワークロードに対応可能になる。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。