📘 FINN 自定义算子集成指南 30章 · 从入门到进阶

🧑‍🎓 友好色系
FINN框架简介 为什么需要自定义算子 自定义算子的应用场景
安装Xilinx Vitis 配置FINN环境 验证安装 常见环境问题排查
源码目录结构 关键配置文件说明 构建系统介绍 自定义算子存放位置
HLS语法要点 数据类型选择 流水线与循环优化 接口综合
创建HLS工程 编写矩阵乘法算子 C仿真与验证 导出IP核
FINN算子接口标准 AXI-Stream协议详解 控制信号约定 时序要求
Streaming数据流设计 FIFO深度选择 反压机制处理 数据对齐技巧
模板参数使用 编译时配置 运行时配置 参数传递机制
定点数格式选择 量化参数传递 精度分析 溢出处理
ReLU及其变体 Sigmoid近似实现 Tanh查找表 自定义激活函数
最大池化实现 平均池化实现 全局池化 池化窗口参数化
im2col方法 Winograd算法 脉动阵列架构 循环分块策略
分块矩阵乘法 脉动阵列实现 数据复用策略 带宽优化
Conv-BN融合 激活函数融合 层间流水线 减少DDR访问
片上BRAM使用策略 DDR访问优化 数据预取 乒乓缓冲设计
算子级流水线 循环级流水线 数据级流水线 吞吐量计算
Vitis HLS报告解读 时序分析 资源利用率分析 瓶颈定位
C/RTL协同仿真 波形调试 数据比对 常见错误排查
算子注册 ONNX节点映射 编译流程集成 端到端测试
非标准量化格式 混合精度支持 自定义类型转换 格式兼容性
稀疏矩阵格式 稀疏卷积实现 跳过零值计算 压缩与解压缩
数据并行 模型并行 流水线并行 同步与通信机制
可变输入尺寸 动态批处理 运行时重配置 资源预留策略
全连接层 BatchNorm层 残差连接 注意力机制算子
资源复用 时分复用 面积与速度权衡 资源约束设置
时钟门控 数据门控 低功耗设计模式 功耗评估方法
FINN版本迁移 Vitis版本适配 算子接口兼容 回归测试
YOLO检测网络自定义算子集成
BERT推理加速自定义算子开发
常见设计模式 社区资源推荐 未来发展方向 课程总结