ucb-bar/gemmini
Berkeley's Spatial Array Generator
解決する課題
Gemmini は、ディープニューラルネットワーク (DNN) ハードウェアを探索および評価するための全システム、フルスタックプラットフォームを提供します。アーキテクトは、アクセラレータ自体だけでなく、システムやソフトウェアスタックのさまざまなコンポーネントがどのように相互作用してDNN全体のパフォーマンスに影響を与えるかを分析できます。
仕組み
Gemmini は Chisel ハードウェア記述言語を使用して開発された、RISC-V 用の RoCC (Rocket Custom Coprocessor) アクセラレータとして実装されています。そのアーキテクチャは行列乗算用のシストリックアレイを中心としており、出力固定 および重み固定 の両方のデータフローをサポートしています。
主要なハードウェアコンポーネントは以下の通りです:
- 分離型アクセス/実行アーキテクチャ: 実行、ロード、ストア命令用の独立したコントローラにより、メモリアクセスと計算を同時に実行できます。
- スクラッチパッドとアキュムレータ: 入力、部分和、および最終結果を保存するために使用されるプライベート SRAMs。
- DMA エンジン: ホスト CPU のメインメモリとアクセラレータのプライベート SRAMs 間のデータ転送を促進します。
- 周辺回路: 活性化関数(ReLU など)、量子化ワークロードのスケーリング、および行列転置をサポートします。
対象者
多様な DNN アクセラレータを構築、構成、プロファイリングし、機能シミュレータ (Spike) またはサイクル精度のシミュレータ (Verilator, VCS, および FireSim) を使用してテストしたいと考えているハードウェアアーキテクトや研究者向けに設計されています。
ハイライト
- 柔軟な構成: シストリックアレイの次元、データフロー、メモリ容量、およびデータ型(例:8-bit 整数や浮動小数点)のパラメータを調整できます。
- フルスタック評価: Chipyard エコシステムと統合して、baremetal、Linux、または proxy-kernel 環境でソフトウェアバイナリをテストします。
- ハードウェアとソフトウェアの協調設計: ResNet50 のような大規模な DNN モデルを実行するためのライブラリ (
libgemmini) とテストスイートが含まれています。 - FPGA アクセラレーション: FireSim をサポートし、エンドツーエンドのワークロードの高速でサイクル精度の高いシミュレーションを実現します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト