卷积神经网络硬件加速实现

📚 共计 30 章节
01
课程导论与背景
为什么需要硬件加速?CNN计算瓶颈分析,硬件加速思路对比 (GPU/FPGA/ASIC)
瓶颈分析对比
02
CNN基础算子分析
卷积数学本质,im2col/Winograd/FFT,标准/深度可分离/分组卷积
数据流im2col
03
硬件设计基础回顾
数字电路基础,FPGA架构 (LUT/DSP/BRAM),ASIC设计流程
组合逻辑流水线
04
系统架构概览
典型加速器架构 (行固定/输出固定/权重固定),脉动阵列概念
Systolic数据流
05
计算单元设计 (一)
MAC微架构,定点vs浮点,量化基础 (INT8/INT4)
MAC量化
06
计算单元设计 (二)
脉动阵列详细设计,数据复用策略,PE内部结构
脉动阵列PE
07
存储系统设计
片上SRAM分层与带宽,DMA设计,双缓冲技术
DMA双缓冲
08
控制通路设计
ISA设计,微码/状态机控制器,地址生成逻辑
控制器ISA
09
卷积层加速实现 (一)
标准3x3卷积硬件映射,输入/输出通道并行化
3x3并行
10
卷积层加速实现 (二)
1x1/全连接层映射,分组/深度可分离卷积硬件实现
1x1分组卷积
11
池化层与激活函数实现
最大/平均池化硬件,ReLU/Sigmoid/Tanh实现 (LUT/分段线性)
池化激活
12
数据量化与精度管理
PTQ与QAT硬件支持,缩放因子与零点处理
PTQQAT
13
批归一化 (BN) 融合
BN数学原理,推理阶段融合技巧,硬件吸收与简化
BN融合推理
14
片上网络 (NoC) 与数据路由
数据互联架构,广播/多播/点对点,带宽与拥塞控制
NoC路由
15
高级数据流优化
Row Stationary详解,Output/Weight Stationary对比
数据流Row固定
16
Winograd卷积加速
Winograd数学推导,F(2x2,3x3)硬件实现,变换矩阵硬件化
WinogradF(2,3)
17
稀疏性加速
权重剪枝与稀疏利用,CSR/CSC编码,跳过零值硬件设计
稀疏CSR
18
脉动阵列的进阶设计
二维阵列边界处理,数据重排与加载,规模/频率权衡
2D脉动边界
19
RTL设计与仿真 (一)
Verilog/VHDL实现MAC单元,Testbench功能仿真
RTLTestbench
20
RTL设计与仿真 (二)
4x4脉动阵列实现,矩阵乘法验证,时序/资源分析
4x4时序
21
RTL设计与仿真 (三)
完整卷积层加速器 (控制器+存储+阵列),集成测试与评估
集成加速器
22
高层次综合 (HLS) 实现
Vivado HLS描述加速器,C/C++优化指令 (Pipeline/Unroll/Array Partition)
HLS优化
23
HLS优化实战
循环展开/流水线深度,数组分割与数据排布,接口综合
循环展开数组分割
24
FPGA原型验证
FPGA板部署,AXI总线与DDR交互,驱动编写与上板调试
FPGAAXI
25
性能分析与调优
GOPS吞吐量,访存带宽利用率,功耗分析,Roofline模型
RooflineGOPS
26
编译器与工具链
TVM/VTA框架,ONNX到硬件指令编译,算子调度与内存分配
TVM编译
27
前沿架构探索
近存/存内计算,可重构架构 (CGRA) 在CNN加速中的应用
近存计算CGRA
28
低功耗设计技术
时钟门控/数据门控/DVFS,异步设计简介
低功耗门控
29
验证与测试方法学
形式验证/仿真/FPGA原型协同,覆盖率驱动,常见Bug调试
验证覆盖率
30
课程总结与项目实战
核心知识点回顾,端到端项目 (算法→硬件部署),未来趋势
项目实战大模型