项目摘要
从场景、基线到可复现证据。
将训练完成、权重固定的小模型映射为专用推理硬件,分析面积、延迟、吞吐和能耗取舍。
项目手册建议先完成一个可以在电脑上运行的最小版本,再逐步加入真实约束。最后分享方法、结果、遇到的困难、限制和下一步。
评测重点
用指标说明取舍。
完整项目手册
项目一:Hardened-Weights Model Chip Design
一句话介绍
把一个训练完成、权重固定的神经网络映射成专用推理硬件,并量化它在面积、延迟、吞吐和能耗上的收益与代价。
背景
通常的 GPU 或 NPU 需要从外部内存不断读取模型权重,因此会消耗大量带宽和能量。对于模型和任务都很稳定的场景,例如固定类别的视觉检测、传感器分析或工业检查,可以把权重编译进硬件逻辑本身。这类设计常被称为 hardened weights 或 weight-stationary specialized inference。
这与 Taalas 所强调的模型专用推理芯片方向相关,但课程项目不尝试复刻任何商业产品,也不要求真实流片。学生的目标是完成一个小模型的可综合硬件原型,理解“固定权重”在哪些情况下能减少内存访问,又会牺牲哪些可更新性。
项目问题
选择一个小型、公开且许可证清楚的模型,例如 MNIST/CIFAR 分类器、关键词唤醒网络或小型异常检测模型。比较两种推理实现:
- 可编程基线:权重从 ROM、BRAM 或外部内存读取。
- 权重固化版本:量化后的部分或全部权重直接成为 RTL 常量、查找表初始化或综合时常量。
最小版本
- 一个可在 CPU 上复现准确率的小模型。
- 量化后的推理参考实现。
- 一个 Verilog、SystemVerilog、HLS 或等价的硬件实现。
- 至少一层权重以常量或 ROM 初始化形式进入硬件。
- 面积/资源、周期数和估算能耗的对比报告。
建议优先做单层 MLP、深度可分离卷积或极小 CNN。先跑通一个层,再扩展网络;不要一开始挑战大语言模型或完整 Transformer。
推荐技术路线
- 训练或下载一个小模型,并锁定测试集和准确率基线。
- 进行整数或低比特量化,比较 FP32、INT8 和更低比特精度。
- 写出逐层的定点参考代码,确保硬件和软件输出一致。
- 先实现可编程权重存储,再替换为固化权重版本。
- 用 Verilator/iverilog 做功能仿真,用 FPGA 工具或综合工具报告资源与时序。
- 分析哪些模块仍然需要可编程控制,例如输入、归一化阈值或输出类别映射。
必须回答的问题
- 权重被固化后,模型还能如何更新?更新代价是什么?
- 固化减少了多少权重读取和片外带宽?
- 量化带来多少精度损失,又节省多少逻辑或存储?
- 哪些计算适合编译为硬件常量,哪些保留为可编程单元更合理?
- 若模型结构或任务分布变化,这个专用设计会如何失效?
评测指标
- 软件与硬件输出的一致性,以及测试集准确率。
- LUT、FF、BRAM、DSP 或等价综合资源。
- 时钟频率、单样本周期数、吞吐和延迟。
- 权重存储大小和估算的内存访问次数。
- 能耗或能效估算,必须说明估算模型和假设。
资源与安全边界
推荐使用开源仿真与综合工具,或课程提供的 FPGA 开发板。课程交付到仿真、综合报告或 FPGA 演示即可;不得宣称未流片的项目具备真实芯片的功耗、性能或可靠性。不要使用受限 PDK、保密模型权重或未授权商业 IP。
进阶方向
- 用结构化剪枝减少固化乘法器数量。
- 比较 SRAM/ROM 权重与完全常量化逻辑。
- 自动生成定点 RTL,并在量化与面积之间搜索 Pareto 前沿。
- 在 FPGA 上部署并测量实际板级延迟与功耗。
- 为多个任务设计共享前端和可替换的固化后端。
交付物
模型卡与数据许可证、量化脚本、硬件源代码、可复现仿真、综合或 FPGA 报告、软件/硬件一致性测试,以及一张展示准确率-资源-延迟取舍的图。
参考资源
- Taalas:模型专用推理芯片方向的公开介绍。
- hls4ml:将小型 ML 模型转换为 FPGA HLS 实现。
- FINN:量化神经网络的 FPGA 推理框架。
- Verilator:开源 Verilog/SystemVerilog 仿真器。
- OpenLane:开源 ASIC 设计流程,可作为进阶工具链。
常见误区
“权重固化”不等于把参数写进一个文件。项目的关键是证明权重表示和数据移动方式改变了硬件资源或内存访问,同时诚实说明模型可更新性为何下降。
> 外部代码、模型、数据集和平台的使用须遵守其对应许可证、服务条款及适用法律;课程不授予第三方资源额外的再分发或商业使用权。