[論文レビュー] SparCE: Sparsity aware General Purpose Core Extensions to Accelerate Deep Neural Networks
SparCEは、一般用途プロセッサ(GPP)に低コストのマイクロアーキテクチャおよびISA拡張を導入し、ディープニューラルネットワーク(DNN)における静的および動的スパarsityを活用することで、推論および学習の高速化を実現する。スパarsityレジスタファイル(SpRF)とスパarsity対応スキップアドレス(SASA)テーブルを用いることで、SparCEはフェッチの前に冗長命令を動的に事前に特定・スキップし、スカラプロセッサでは1.11×~1.96×のスルーブプット向上、SIMD ARMv8プロセッサでは6つの画像認識DNNにおいて8%~15%の実行時間短縮を達成した。
Deep Neural Networks (DNNs) have emerged as the method of choice for solving a wide range of machine learning tasks. The enormous computational demands posed by DNNs have most commonly been addressed through the design of custom accelerators. However, these accelerators are prohibitive in many design scenarios (e.g., wearable devices and IoT sensors), due to stringent area/cost constraints. Accelerating DNNs on these low-power systems, comprising of mainly the general-purpose processor (GPP) cores, requires new approaches. We improve the performance of DNNs on GPPs by exploiting a key attribute of DNNs, i.e., sparsity. We propose Sparsity aware Core Extensions (SparCE)- a set of micro-architectural and ISA extensions that leverage sparsity and are minimally intrusive and low-overhead. We dynamically detect zero operands and skip a set of future instructions that use it. Our design ensures that the instructions to be skipped are prevented from even being fetched, as squashing instructions comes with a penalty. SparCE consists of 2 key micro-architectural enhancements- a Sparsity Register File (SpRF) that tracks zero registers and a Sparsity aware Skip Address (SASA) table that indicates instructions to be skipped. When an instruction is fetched, SparCE dynamically pre-identifies whether the following instruction(s) can be skipped and appropriately modifies the program counter, thereby skipping the redundant instructions and improving performance. We model SparCE using the gem5 architectural simulator, and evaluate our approach on 6 image-recognition DNNs in the context of both training and inference using the Caffe framework. On a scalar microprocessor, SparCE achieves 19%-31% reduction in application-level. We also evaluate SparCE on a 4-way SIMD ARMv8 processor using the OpenBLAS library, and demonstrate that SparCE achieves 8%-15% reduction in the application-level execution time.
研究の動機と目的
- カスタムアクセラレータが不適切なコスト・面積制約のある埋め込みシステムにおいて、一般用途プロセッサ(GPP)上でディープニューラルネットワーク(DNN)の推論および学習を高速化すること。
- 一般用途プロセッサ(GPP)アーキテクチャにおいて、プルーニングされた重み(静的スパarsity)とReLU活性化特徴(動的スパarsity)の両方を効率的に活用する課題に対処すること。
- フェッチの前段階で冗長計算を事前に特定することで、性能へのオーバーヘッドを最小限に抑えつつ、早期の命令スキップを可能にすること。
- アプリケーション固有の変更を必要とせず、動的および静的スパarsityを両方サポートする、最小限の干渉と低コストのGPP拡張を設計すること。
提案手法
- ゼロ値を含む一般用途レジスタを動的に追跡できるスパarsityレジスタファイル(SpRF)を導入し、実行時におけるゼロオペランドの検出を可能にする。
- ゼロ値オペランドに依存する命令シーケンスを事前に特定するためのスパarsity対応スキップアドレス(SASA)テーブルを設計する。
- SpRFおよびSASAのデータを用いてプログラムカウンタを変更し、冗長命令のフェッチを防ぐPre-identify and Skip Redundancy Unit(PSRU)を実装する。
- gem5シミュレータを用いて、SparCE拡張をGPPマイクロアーキテクチャに統合し、CaffeベースのDNNワークロードを用いてスカラおよび4ウェイSIMD ARMv8プロセッサで評価する。
- 性能向上を評価するためのベースラインとして、スパース行列演算およびスパースBLASライブラリを用い、スパarsityレベル(10%~90%)の変動に応じた性能比較を実施する。
- SparCEを6つの最先端の画像認識DNN(ResNetおよびVGGを含む)に適用し、推論および学習フェーズの両方で評価した。
実験結果
リサーチクエスチョン
- RQ1一般用途プロセッサにスパarsity対応拡張を効果的に統合することで、顕著な面積的・性能的オーバーヘッドなしにDNN実行を高速化できるか?
- RQ2ゼロ値オペランドに基づく動的命令スキップは、DNNワークロードにおける冗長計算の削減にどの程度効果的か?
- RQ3SparCEは、主流のDNNにおいて、プルーニングされた重み(静的スパarsity)とReLU活性化特徴(動的スパarsity)の両方をどの程度活用できるか?
- RQ4SparCEを用いることで、スカラおよびSIMD GPPにおいて、どの程度のスルーブプット向上および実行時間短縮が達成できるか?
主な発見
- スカラマイクロプロセッサでは、スパarsityレベルが10%~90%の範囲で、畳み込み層および全結合層の両方において1.11×~1.96×のスルーブプット向上を達成した。
- アプリケーション全体の観点から見ると、評価されたDNN全体で19%~31%の実行時間短縮が達成され、エンド・ツー・エンドの性能向上が顕著に示された。
- 4ウェイSIMD ARMv8プロセッサ(OpenBLASを用いて)では、8%~15%のアプリケーションレベルの実行時間短縮が達成され、ベクトル化実行環境における有効性が裏付けられた。
- PSRUユニットは、スキップ条件を事前に特定することで、命令のスラッシングに起因するパイipelラインスタールを回避し、冗長命令のフェッチを効果的に防止した。
- SparCEは、ReLU活性化に起因する動的スパarsityと、重みプルーニングに起因する静的スパarsityの両方を効果的に活用でき、現代の多数のDNNに適用可能である。
- 設計は最小限の干渉と低コストであり、アプリケーションやコンパイラの変更を一切必要とせず、既存のGPPベースの埋め込みシステムへのシームレスな統合が可能である。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。