ucb-bar/gemmini
Berkeley's Spatial Array Generator
解决的问题
Gemmini 提供了一个全系统、全栈的平台,用于探索和评估深度神经网络 (DNN) 硬件。它允许架构师分析系统和软件栈的不同组件(不仅仅是加速器本身)如何相互作用并影响整体 DNN 性能。
工作原理
Gemmini 实现为 RISC-V 的 RoCC (Rocket Custom Coprocessor) 加速器,使用 Chisel 硬件描述语言开发。其架构以用于矩阵乘法的脉动阵列为核心,同时支持输出固定 和权重固定 数据流。
关键硬件组件包括:
- 解耦存取/执行架构:为执行、加载和存储指令提供独立的控制器,允许内存访问和计算同时进行。
- 暂存器与累加器:用于存储输入、部分和与最终结果的私有 SRAMs。
- DMA 引擎:促进主机 CPU 主内存与加速器私有 SRAMs 之间的数据传输。
- 外围电路:支持激活函数(如 ReLU)、量化工作负载的缩放以及矩阵转置。
适用对象
专为想要构建、配置和分析多样化 DNN 加速器,并使用功能模拟器 (Spike) 或周期精确模拟器 (Verilator, VCS, 和 FireSim) 对其进行测试的硬件架构师和研究人员而设计。
亮点
- 灵活的配置:可调整脉动阵列维度、数据流、内存容量和数据类型(例如 8-bit 整数或浮点数)的参数。
- 全栈评估:与 Chipyard 生态系统集成,以在 baremetal、Linux 或 proxy-kernel 环境中测试软件二进制文件。
- 软硬件协同设计:包含一个库 (
libgemmini) 和测试套件,用于运行如 ResNet50 等大型 DNN 模型。 - FPGA 加速:支持 FireSim,用于端到端工作负载的高速、周期精确模拟。
相关
- 项目
- 项目
- 项目
- 项目