> [!abstract] 概要(arXiv abstract の日本語訳)
> 深層ニューラルネットワーク(DNN)は現在、コンピュータビジョン・音声認識・ロボティクスを含む多くの人工知能(AI)アプリケーションで広く使われている。DNN は多くの AI タスクで最先端の精度を達成する一方、その代償として高い計算複雑性を伴う。したがって、アプリケーションの精度を犠牲にせずハードウェアコストを増大させることなく、エネルギー効率とスループットを改善する DNN の効率的な処理を可能にする技術は、AI システムへの DNN の広範な展開にとって重要である。
> 本稿は、DNN の効率的な処理を可能にすることを目標とした最近の進展について、包括的なチュートリアルとサーベイを提供することを目的とする。具体的には、DNN の概要を示し、DNN を支える様々なハードウェアプラットフォームとアーキテクチャを議論し、ハードウェア設計の変更のみによって、あるいはハードウェア設計と DNN アルゴリズムの変更を組み合わせることによって DNN の計算コストを削減する主要な傾向を強調する。また、この分野に迅速に着手するための研究者・実務者向けの様々な開発リソースをまとめ、学術界と産業界で急速に増加している DNN ハードウェア設計(アルゴリズム協調設計を含む場合もある)を評価する際に用いるべき重要なベンチマーク指標と設計上の考慮点を強調する。
> 読者は本稿から次の概念を得られる: DNN の主要な設計上の考慮点の理解、ベンチマークと比較指標を用いた様々な DNN ハードウェア実装の評価能力、様々なハードウェアアーキテクチャとプラットフォーム間のトレードオフの理解、効率的な処理のための様々な DNN 設計技術の有用性の評価能力、そして最近の実装動向と機会の理解。
## 論文情報
- タイトル: Efficient Processing of Deep Neural Networks: A Tutorial and Survey
- 著者: Vivienne Sze, Yu-Hsin Chen, Tien-Ju Yang(MIT EECS), Joel Emer(MIT EECS / NVIDIA Corporation)
- 媒体: arXiv プレプリント(IEEE 系ジャーナル/カンファレンス投稿を意図したチュートリアル・サーベイ)。32ページ
- arXiv ID: 1703.09039v2(2017-08-13 改訂)
## 概要
DNN の推論・学習に必要な計算とデータ移動を効率化する技術群を、ハードウェア単体の最適化(Section V・VI)と DNN モデル・ハードウェアの協調設計(Section VII)の2軸に整理したチュートリアルである。DNN の背景・基本構成([[#問題設定]])から、CPU/GPU/ASIC/FPGA といったプラットフォーム別の高速化手法、近データ処理(near-data processing)、そして精度への影響を伴う量子化・枝刈り・コンパクトアーキテクチャ・知識蒸留までを一貫して扱い、最後に DNN ハードウェアを公平に比較するための指標体系(Section VIII)を提案する。
## 問題設定
DNN は畳み込み層(CONV)と全結合層(FC)を中心に構成され、いずれも本質的には乗算加算(multiply-and-accumulate, MAC)の集合に帰着する。CONV 層の入出力は形状パラメータ N(バッチサイズ)・M(フィルタ数)・C(入力チャネル数)・H/W(入力特徴マップの高さ/幅)・R/S(フィルタの高さ/幅)・E/F(出力特徴マップの高さ/幅)で記述される(Table I)。
**Figure 9: 畳み込みの次元性**
![[_attachments/arxiv-1703.09039/fig09-convolution-dimensionality.png]]
(Fig. 9. (a) 従来の画像処理における2次元畳み込みでは、フィルタと入力特徴マップの要素ごとの積を部分和として蓄積し、1つの出力活性化を生成する。(b) CNN における高次元畳み込みでは、C チャネルの入力特徴マップ群に M 個のフィルタを適用して M チャネルの出力特徴マップを生成し、これを N 個の入力バッチについて繰り返す。)
高効率化の主目的は、精度([[#実験設定]]の指標)を犠牲にせず、エネルギー効率とスループットを改善し、かつハードウェアコストを増大させないことである。前提として、DNN 処理はエネルギー消費の大半をデータ移動(特に DRAM アクセス)が占める点が本サーベイの中心的な観察である。
**Figure 22: メモリ階層とデータ移動エネルギー**
![[_attachments/arxiv-1703.09039/fig22-memory-hierarchy-energy.png]]
(Fig. 22. MAC 1回の実行に必要なデータを、レジスタファイル(RF)・PE 間ネットワーク(NoC、200〜1000 PE 規模)・グローバルバッファ(100〜500kB)・DRAM のどの階層から取得するかによって正規化エネルギーコストが大きく変わる。RF/PE アクセスを基準(1×)とすると、バッファアクセスは約6倍、DRAM アクセスは約200倍のエネルギーを要する。)
## 提案手法(サーベイの整理枠組み)
本サーベイは、DNN 効率化技術を次の2つの軸に分けて整理している。
### A. ハードウェア単体の最適化(精度に影響しない)
- **時間的アーキテクチャ(temporal architecture)と空間的アーキテクチャ(spatial architecture)**: CPU/GPU に代表される時間的アーキテクチャは集中制御された多数の ALU が SIMD/SIMT でメモリ階層からデータを取得するのに対し、ASIC/FPGA に代表される空間的アーキテクチャ(データフロー処理)は各 ALU(Processing Engine, PE)が独自の制御・ローカルメモリ(スクラッチパッド/レジスタファイル)を持ち、ALU 間で直接データを受け渡す(Fig. 17)。
- **カーネル計算の高速化(CPU/GPU)**: CONV/FC 層を行列積(Toeplitz 行列を介した変換を含む、Fig. 19)や高速フーリエ変換(FFT、Fig. 20)にマッピングし、cuBLAS・cuDNN 等のライブラリでタイル化して高速化する。
- **データフロー設計(ASIC/FPGA アクセラレータ)**: PE 間・メモリ階層間のデータ再利用パターンを、Weight Stationary(WS)・Output Stationary(OS、3変種 OS_A/OS_B/OS_C)・No Local Reuse(NLR)・Row Stationary(RS)の4系統6種に分類する。
**Figure 25: DNN 向けデータフローの分類**
![[_attachments/arxiv-1703.09039/fig25-dataflows-taxonomy.png]]
(Fig. 25. (a) Weight Stationary はグローバルバッファから各 PE のレジスタに重みを固定配置し、活性化(Act)を PE 間でブロードキャストして部分和(Psum)を PE 間で転送する。(b) Output Stationary は各 PE の部分和を局所に固定し、重みをブロードキャストする。(c) No Local Reuse は PE にローカルメモリを持たず、重み・活性化・部分和のすべてをグローバルバッファ経由で受け渡す。)
- **Row Stationary(RS)データフロー**: 本サーベイの著者らが提案した Eyeriss アクセラレータのデータフローで、1次元畳み込みの行単位の再利用を PE 内で、2次元畳み込みの再利用を PE アレイ全体の空間配列で行うことで、重み・活性化・部分和のすべての種類のデータについて再利用を最大化する。
**Figure 31: Eyeriss DNN アクセラレータ**
![[_attachments/arxiv-1703.09039/fig31-eyeriss-accelerator.png]]
(Fig. 31. オフチップ DRAM から 64bit バスで RLC(run-length coding)符号化されたフィルタ・入力特徴マップ・部分和を読み込み、108KB のグローバルバッファを介して 12×14 の PE アレイ(各 PE はスクラッチパッド・MAC・制御を持つ)へ供給する。出力特徴マップは ReLU を経て RLC 符号化されオフチップへ書き出される。)
- **近データ処理(near-data processing、Section VI)**: 3次元集積(TSV による embedded DRAM 積層)や、SRAM/不揮発性抵抗メモリのビットセルでアナログ計算を行う手法により、メモリとロジックの距離そのものを縮めてデータ移動コストを下げる方向性も紹介する。
### B. DNN モデルとハードウェアの協調設計(精度に影響し得る)
Section V・VI の手法とは異なり、ここで扱う技術は精度に影響する可能性があるため、エネルギー・スループットの改善と精度劣化の最小化を同時に追求する。
- **精度(オペランドのビット幅)の削減**: 浮動小数点から固定小数点への変換、動的固定小数点、対数量子化、重み共有(weight sharing)、そして 1〜2 ビットまで削る二値/三値ネット(BinaryConnect・BWN・XNOR-Net・TWN/TTQ 等)。
- **演算数・モデルサイズの削減**: ReLU による活性化の疎性(sparsity)の活用、ネットワーク枝刈り(pruning)、コンパクトなネットワークアーキテクチャ設計、知識蒸留(knowledge distillation)。
## 新規性(チュートリアルとしての整理軸)
既存の DNN ハードウェア研究は個々のアクセラレータ・個々の最適化技術を単発で報告するものが多く、比較の土台が揃っていなかった。本サーベイの新規性は、(1) ハードウェア単体の最適化と DNN・ハードウェアの協調設計という2軸の分類を提示したこと、(2) データフローという観点で ASIC/FPGA アクセラレータの設計空間を統一的に記述したこと、(3) Section VIII で DNN モデル指標(精度・重み数・MAC 数)と DNN ハードウェア指標(電力・エネルギー・レイテンシ・スループット・コスト)を分けて定義し、比較のための共通ベンチマーク指標を提案したことにある。
## 実験設定(ベンチマーク指標の提案)
本サーベイは実験を新規に行うのではなく、DNN ハードウェアを公平に比較するための指標体系を提案する。
**DNN モデルの指標**(Table IV に例示):
- ImageNet 上の Top-5 誤り率、および使用したデータ拡張(複数クロップ・アンサンブル等)の種類
- ネットワークアーキテクチャ(層数・フィルタサイズ・フィルタ数・チャネル数)
- 重み数(可能なら非ゼロ(NZ)重み数も。理論的な最小ストレージ要件を反映するため)
- MAC 数(可能なら非ゼロ MAC 数も。入力データに依存するため、公開されている ImageNet 検証用画像 50,000 枚での計算を提案)
**DNN ハードウェアの指標**:
- 電力・エネルギー消費(対応する DNN モデル・層・ビット精度と、DRAM アクセス量を併記)
- レイテンシ・スループット(バッチサイズと実測実行時間を明記。ピーク性能ではなく実測値)
- コスト(コア面積・乗算器あたりの面積・オンチップメモリ量。FPGA なら DSP/BRAM/LUT/FF 利用率)
- テスト条件(実測かシミュレーションか。シミュレーションなら synthesis か post place-and-route か)
## 実験結果(引用される代表数値)
- メモリ階層エネルギーコスト(Fig. 22): RF/PE アクセスを基準(1×)とすると、200〜1000 PE 規模のネットワーク経由で約2×、100〜500kB のオンチップバッファ経由で約6×、DRAM 経由で約200×のエネルギーを要する。
- データフロー別のエネルギー効率(Fig. 33, AlexNet CONV 層・バッチサイズ16): Row Stationary(RS)を基準(1×)とすると、他のデータフロー(WS・OS_A/B/C・NLR)は正規化エネルギー/MAC が RS の約1.0〜2倍以上になり、特に NLR はオンチップバッファアクセスの割合が大きいため高くなる。データ種別(pixels/weights/psums)ごとの分解でも、RS が最も均等かつ低いエネルギー配分を示す。
- 8-bit 固定小数点化の効果: 32-bit 固定小数点の加算に対し 8-bit 加算はエネルギーで約3.3倍・面積で約3.8倍の削減、32-bit 浮動小数点加算に対しては約30倍のエネルギー削減。8-bit 固定小数点の乗算は 32-bit 固定小数点乗算に対しエネルギーで約15.5倍、32-bit 浮動小数点乗算に対しては約18.5倍のエネルギー削減。
- Eyeriss チップの実測仕様(Table V): 65nm LP TSMC プロセス、コア面積 12.25mm²、オンチップメモリ 192kB、乗算器数168。AlexNet(バッチサイズ4、重み・活性化とも16bit)では実行時間 115.3ms・電力278mW、VGG-16(バッチサイズ3)では実行時間4309.4ms・電力236mW。
## 考察
本サーベイが強調する結論は、DNN ハードウェアの優劣は単一指標では判断できないという点である。精度を犠牲にした比較(例えば単純な DNN を動かして低電力・高スループットを主張する)や、オフチップ帯域幅を無視した比較(乗算器のみのプロセッサで低コスト・高スループットを主張する)は、システム全体で見ると成立しない。したがって著者らは、(1) 精度がタスク実行可能性を決め、(2) レイテンシ・スループットが実時間性を決め、(3) 電力・エネルギーがデバイスのフォームファクタを決め、(4) コスト(チップ面積)が採用可否を決める、という4段階の評価プロセスを提案している。
データ移動がエネルギーを支配するという観察(Fig. 22)は、ハードウェア単体の最適化(データフロー設計)と、DNN モデル側の最適化(量子化・枝刈りによるデータ量そのものの削減)が独立ではなく補完的であることを示している。
## 強み
- ハードウェア最適化とアルゴリズム協調設計を同一の軸(データ移動・精度・スループット・コストのトレードオフ)で統一的に説明しており、個別技術の位置づけが把握しやすい。
- Section VIII のベンチマーク指標提案は、当時乱立していた DNN アクセラレータ論文の比較困難性(指標の不統一)に対する具体的な処方箋を示している。
- データフロー分類(WS/OS/NLR/RS)は著者ら自身の Eyeriss 研究([94])を土台にしており、提案する分類法が実チップの実測データ(Table V)で裏付けられている。
## 弱点・課題
- 2017年時点のサーベイであり、Transformer 系アーキテクチャや大規模言語モデル向けのアクセラレータ設計(メモリ帯域・KVキャッシュ管理等)は対象外である。
- 精度に影響する協調設計技術(量子化・枝刈り等)の評価は個別研究の報告値の引用に留まり、本サーベイ自身による横断的な再実験・再現実験は行っていない。
- ベンチマーク指標の提案([162]で言及されるウェブサイト)は当時の外部リソースへの参照であり、本文中では指標の枠組みのみが提示され、収集済みデータの具体的な集計は示されていない。