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 をサポートし、エンドツーエンドのワークロードの高速でサイクル精度の高いシミュレーションを実現します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト