面向FPGA上训练后定点卷积神经网络(CNN)部署的数值工作流

《Array》:A numerical workflow for post-training fixed-point CNN deployment on FPGA

【字体: 时间:2026年05月22日 来源:Array 4.5

编辑推荐:

  卷积神经网络(CNN)被广泛用于图像分类;然而,由于其浮点(floating-point)实现的计算和存储需求,其在资源受限的边缘系统中的部署仍然具有挑战性。本研究提出了一种可复现的Matlab-Vitis HLS工作流,用于在低成本现场可编程门阵列(FPGA

  
卷积神经网络(CNN)被广泛用于图像分类;然而,由于其浮点(floating-point)实现的计算和存储需求,其在资源受限的边缘系统中的部署仍然具有挑战性。本研究提出了一种可复现的Matlab-Vitis HLS工作流,用于在低成本现场可编程门阵列(FPGA)上进行定点(fixed-point)CNN部署,其中成功的定义为透明转换(即RTL/C协同仿真在相同测试集上复现Matlab定点参考结果)。采用MNIST作为定点数值和FPGA实现分析的受控案例研究。使用2000张图像的MNIST子集和完整的10000张图像测试集,浮点/定点准确率分别为96.55%/96.40%和96.82%/95.80%,同时将推理延迟减少了87.76%,从43.71 ms降至5.35 ms。在Xilinx Artix7 FPGA上实现时,其性能比主机浮点运行时间最高高出2.14倍。这是通过包括算术量化、饱和逻辑和定点舍入优化在内的架构策略实现的,在保持功能准确率的同时显著减少了数字信号处理(DSP)和块RAM(BRAM)的使用。定点实现在该评估工作流内实现了基于FPGA的低延迟推理,报告了在低成本Artix-7目标上的准确率–延迟–资源权衡。
研究背景:随着人工智能(AI)尤其是深度学习(DL)的发展,卷积神经网络(CNN)在图像分类等任务中表现优异。然而,传统CNN部署依赖云服务器或图形处理单元(GPU),在物联网(IoT)、移动和工业等边缘计算场景中,存在功耗高、实时响应差、成本高等问题。现场可编程门阵列(FPGA)因并行性、可重构性成为边缘部署的有前景替代方案,但浮点算术在FPGA上会消耗大量DSP和BRAM资源,定点算术虽能减少资源和延迟,但需仔细设计以维持精度和数值稳定性,目前缺乏可复现的、能桥接训练后定点调优与FPGA HLS/RTL实现并保证跨工具阶段数值一致的工作流。
研究人员开展了以下研究:以MNIST手写数字识别为受控案例,首先在Matlab中训练浮点CNN(MnistConv模型)作为功能基线;其次通过Matlab Fixed-Point Designer进行逐层定点格式(W,I)选择,结合动态范围覆盖分析、灵敏度分析(eSQRT/MSE指标)确定最优字长、整数位长,同时评估舍入模式(Round、Nearest、Floor等)和溢出处理(Saturate、Wrap)对数值误差的影响,选定Saturate溢出和Round舍入为最优策略;随后将定点模型转换为可综合C/C++代码,使用Vitis HLS进行合成,应用unroll、pipeline、dataflow等优化指令,生成RTL设计并通过C/RTL协同仿真验证与Matlab定点参考的一致性;最终在Xilinx Artix-7 FPGA上实现,评估资源使用(LUT、FF、BRAM、DSP)、延迟和准确率。
结论:该工作流实现了训练后定点CNN到低成本FPGA的可复现部署,MNIST子集(2000张)浮点/定点准确率分别为96.55%/96.40%,全测试集(10000张)为96.82%/95.80%,推理延迟从43.71 ms降至5.35 ms(减少87.76%),Artix-7上性能比主机浮点运行最高高2.14倍;定点实现将BRAM使用从23%降至3%,LUT从9%升至10%,DSP从14%升至18%(因并行MAC实例映射到DSP原语),验证了Saturate溢出和Round舍入的最优数值稳定性,逐层(W,I)调优可在覆盖范围和误差间取得平衡;该工作流核心为可复用的数值稳定性策略(舍入/饱和/溢出控制)和实证逐层位宽选择流程,迁移到其他CNN时需重新调优每层的(W,I)以匹配新的动态范围,Softmax层保留浮点(混合精度)因指数/归一化操作难以在低比特定点稳定近似;研究意义在于填补了可复现的训练后定点到FPGA部署的工作流空白,提供了跨工具阶段数值验证协议,量化了准确率-延迟-资源权衡,为边缘AI的高效硬件部署提供了方法论参考。论文发表在《Array》(Elsevier出版的计算机科学开源期刊,SCIE收录,JCR Q2,2023影响因子2.3)。
主要关键技术方法:采用MNIST数据集(Keras接口获取,CC BY-SA 3.0许可),使用Matlab构建5层CNN模型(MnistConv:1个卷积层(20个9×9核)、池化层、展平层、2个全连接层,分别含1620、0、0、200000、1000个可学习参数),以mini-batch梯度下降训练23轮至测试准确率峰值96.55%;通过Matlab Fixed-Point Converter进行逐层定点格式调优,结合动态范围覆盖和灵敏度分析选定每层的(W,I)及算术策略(Saturate溢出、Round舍入);将模型转为C/C++代码,使用Vitis HLS的ap_fixed/ap_ufixed类型实现定点算术,应用unroll、pipeline、dataflow指令优化,通过C仿真和RTL/C协同仿真验证与Matlab定点参考的一致性;最后在Xilinx Artix-7 XC7A200tfbg676 FPGA上综合实现,评估资源、延迟和准确率。
研究结果:
  1. 2.
    方法:研究人员提出了自顶向下的5阶段工作流:(1)Matlab中开发训练浮点CNN作为基线;(2)逐层分析确定最优定点格式以平衡资源和准确率;(3)将定点模型转为可综合C/C++,Vitis HLS中应用优化指令并合成为RTL;(4)RTL验证并打包为IP核;(5)在Artix-7 FPGA上评估。验证协议跨4个阶段(浮点Matlab基线、Matlab定点、Vitis HLS C仿真、RTL/C协同仿真)使用相同测试集,以中间输出(卷积输出、全连接logits等)一致性为通过标准,定义透明转换为RTL/C协同仿真复现Matlab定点参考结果。
2.1 MNIST数据集:MNIST含70000张28×28灰度手写数字图像,采用8000张训练、2000张测试的子集用于快速迭代,同时用全10000张测试集作为参考;该子集用于验证数值稳定性策略和转换工作流,目标是验证量化策略和硬件映射方法而非最大化准确率。
2.2 CNN模型设计:MnistConv模型含输入层、卷积层(20个9×9核,ReLU1激活)、池化层(2×2,缩减75%特征图尺寸)、展平层、全连接层1(FCL1,200000权重,ReLU2激活)、全连接层2(FCL2,1000权重,Softmax激活);训练采用mini-batch(100张)梯度下降,23轮后测试准确率峰值96.55%,平均误差最小2.91%,全测试集准确率96.82%。
2.3 定点转换:Matlab默认浮点为IEEE 754双精度(64位),定点通过(s,n,q)即(符号位、字长、小数位)定义,映射为(W,I)(W=n字长,I=W-q整数位长);通过动态范围覆盖分析确定最小整数位I避免溢出,灵敏度分析评估不同(W,I)的数值偏差(eSQRT、MSE),选定Saturate溢出(钳位到边界值)优于Wrap(模运算回绕,引入循环误差),Round舍入(朝远离零方向取最近值)优于其他模式(Ceiling、Floor等引入系统偏差);逐层最优格式为:卷积输出y1(8,3)、池输出y2(8,2)、展平输出y3(8,2)、FCL1输出v5(16,12)、FCL1输入y5(8,4)、FCL2输出v(16,13);Softmax保留浮点因指数/归一化操作,为显式混合精度设计选择。
2.4 Vitis HLS:将Matlab的CNN转为C/C++,使用ap_fixed.h的ap_fixed/ap_ufixed类型实现定点算术;应用3个关键优化指令:unroll(并行化循环迭代,减少延迟但增加LUT/FF)、pipeline(重叠循环迭代,减少延迟但增加控制逻辑和寄存器/DSP)、dataflow(并发运行卷积、激活、池化等模块,提升吞吐量);浮点实现中BRAM是主要限制资源,可实现5个并行实例仅占22%资源;定点实现中BRAM降至3%,DSP升至18%(因并行MAC映射到DSP原语),LUT占10%,softmax_DP占3% DSP和5% LUT、仅79周期(<0.01 ms@100MHz)。
2.5 协同仿真:C++测试平台注入输入图像和训练后权重,Vivado波形查看器评估延迟;浮点总延迟43.71 ms(卷积层占76.69%、33.52 ms,FCL1乘占22.88%、10 ms);定点总延迟5.35 ms(卷积层占61.22%、3.28 ms,FCL1乘占37.33%、2 ms),优化指令带来1.71倍加速(从9.19 ms到5.35 ms),卷积层并行优化带来2.14倍加速。
  1. 3.
    结果:Vivado后合成显示,浮点实现:LUT 9%(5706)、FF 4%(5072)、BRAM 23%(31)、DSP 14%(34)、IO 86%(258);定点实现:LUT 10%(6340)、FF 1%(1268)、BRAM 3%(4)、DSP 18%(43)、IO 68%(204);定点DSP增加是因HLS调度暴露更多并发MAC实例,Vivado优先推断DSP基乘加器以满足时序,浮点操作符为多阶段算术块无法等效单DSP MAC;固定点准确率在2000张子集为96.40%(浮点96.55%),全测试集为95.80%(浮点96.82%),混淆矩阵显示各类别准确率99.6%-99.8%,仅轻微下降;与同领域低本FPGA实现相比,该工作BRAM使用低7.3倍,LUT低1.5倍。
3.1 讨论和局限:该工作流针对训练后定点部署的前馈CNN推理,映射到Vitis HLS,通过可复用的舍入/饱和/溢出策略和逐层(W,I)调优(基于测试台动态范围)保证数值稳定;更深网络或更大动态范围需重新调优(W,I)和可能的量化策略;局限包括Softmax混合精度(因指数操作难稳定近似)、未在论文中实验验证跨模型/数据集迁移(仅声明可迁移)、未报告板级功耗/能效;未来将改进时间验证方法,探索混合NN架构提升计算效率。
  1. 4.
    结论:该研究解决了FPGA上CNN部署的浮点与定点对比问题,MNIST子集定点准确率96.40%(浮点96.55%),延迟减少87.76%(43.71 ms到5.35 ms),全测试集准确率95.80%(浮点96.82%);定点转换仅带来0.15%准确率下降和0.01%计算成本增加;Artix-7上浮点BRAM 23%、DSP 14%,定点BRAM 3%、LUT 10%、DSP 18%,合成将算术重新分配到DSP同时保持低BRAM占用;卷积和多层网络优化带来1.71倍加速,峰值2.14倍;定点算术在DSP/BRAM使用上更高效,未报告板级功耗/能效,未来将改进时间验证和混合架构。
相关新闻
生物通微信公众号
微信
新浪微博

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号