ucb-bar/gemmini

Public

Berkeley's Spatial Array Generator

  • Stars1.5k+6 tuần này
  • Forks304
  • Watchers31
  • Issues105
  • Ngày tạo31/10/2018
  • Cập nhật gần nhất27/10/2026
  • Ngôn ngữScala
  • Giấy phép—
README.md60.0 KBRaw

Gemmini

The Gemmini project is developing a full-system, full-stack DNN hardware exploration and evaluation platform. Gemmini enables architects to make useful insights into how different components of the system and software stack (outside of just the accelerator itself) interact to affect overall DNN performance.

Gemmini is part of the Chipyard ecosystem, and was developed using the Chisel hardware description language.

This document is intended to provide information for beginners wanting to try out Gemmini, as well as more advanced in-depth information for those who might want to start hacking on Gemmini's source code.

Gemmini's high-level architecture

Quick Start

We provide here a quick guide to installing Gemmini's dependencies (Chipyard and Spike), building Gemmini hardware and software, and then running that software on our hardware simulators.

Dependencies

Before beginning, install the Chipyard dependencies.

Installing Chipyard and Spike

Run these steps to install Chipyard and Spike (make sure to checkout the correct Chipyard and Spike commits as shown below):

git clone https://github.com/ucb-bar/chipyard.git
cd chipyard
./build-setup.sh

source env.sh

cd generators/gemmini
make -C software/libgemmini install

Building Gemmini Software

Run the steps below to compile Gemmini programs, including large DNN models like ResNet50, and small matrix-multiplication tests.

cd chipyard/generators/gemmini/software/gemmini-rocc-tests
./build.sh

Afterwards, you'll find RISC-V binaries in build/, for "baremetal" environments, Linux environments, and "proxy-kernel" environments.

Linux binaries are meant to be executed on SoCs that run Linux. These binaries are dynamically linked, and support all syscalls. Typically, our users run them on FireSim simulators.

Baremetal binaries are meant to be run in an environment without any operating system available. They lack support for most syscalls, and do not support virtual memory either. Our users typically run them on cycle-accurate simulators like Verilator or VCS.

Nội dung README thuộc về ucb-bar và cộng đồng đóng góp, giấy phép Không có giấy phép. Nguồn: github.com/ucb-bar/gemmini