🧩 从PyTorch到FINN · 实战部署
📘 课程目录 · 30章
⚡ FPGA高效部署 · 量化 · 编译 · PYNQ
📁 30个章节
📄 01.html ~ 30.html
🎯 点击卡片跳转
01
课程导论:为什么需要FINN?
PyTorch模型部署到FPGA的痛点与FINN的解决方案。
02
环境搭建
安装PyTorch、Vivado、FINN、Docker,配置开发环境。
03
PyTorch基础回顾
张量操作、自动求导、nn.Module、模型保存与加载。
04
PyTorch模型量化入门
为什么要量化?动态量化与静态量化的区别。
05
PyTorch静态量化实战
使用torch.quantization对CNN模型进行静态量化。
06
FINN核心概念
数据流架构、折叠因子、SIMD、MVTU。
07
FINN的ONNX中间表示
为什么用ONNX?PyTorch模型导出为ONNX。
08
ONNX模型优化
常量折叠、节点融合、拓扑排序。
09
FINN的Brevitas库
训练时模拟量化(QAT)的原理。
10
Brevitas实战
用Brevitas搭建一个量化感知训练的LeNet。
11
FINN编译器入门
从ONNX到HLS C++的编译流程。
12
FINN的折叠与变换
理解folding、StreamingDataflowPartition。
13
FINN的HLS代码生成
生成Vivado HLS兼容的C++代码。
14
Vivado HLS综合
将HLS代码综合成RTL,分析报告。
15
FINN的IP核集成
将生成的RTL打包成Vivado IP核。
16
Vivado Block Design
搭建包含FINN IP的完整硬件系统。
17
PYNQ框架入门
在PYNQ上运行Python控制FPGA。
18
FINN驱动生成
生成Python驱动与硬件通信。
19
端到端部署实战(一)
训练一个简单的二分类CNN。
20
端到端部署实战(二)
用Brevitas量化训练该CNN。
21
端到端部署实战(三)
导出ONNX并用FINN编译。
22
端到端部署实战(四)
在PYNQ-Z2板上运行推理。
23
性能调优
分析吞吐量与延迟,调整折叠因子。
24
资源优化
减少LUT/BRAM/DSP使用量的技巧。
25
多模型支持
部署ResNet-18到FINN的挑战与对策。
26
自定义层支持
如何在FINN中添加自定义算子。
27
调试技巧
使用FINN的仿真模式与波形分析。
28
与TensorRT对比
FINN vs TensorRT在FPGA上的表现。
29
生产环境部署
模型版本管理、持续集成、OTA更新。
30
课程总结与展望
FINN的未来、RISC-V与FPGA的融合趋势。