基于FPGA的YOLOV5s神经网络硬件部署

一 YOLOV5s

     本设计以YOLOV5s部署于FPGA上为例进行分析概述。YOLOV5s网络主要包括backbone、neck、head三部分。

       涉及的关键算子:

  • Conv:卷积,包括3*3、1*1,stride=1/2
  • Concat:
  • Upsample:
  • Pooling:
  • ADD

二 评估

       硬件加速器资源和网络部署评估。FPGA以Ultra96为例, ZU3EG资源如下图所示。   

       网络量化为INT8,结合硬件资源BRAM、DSPs及通信带宽,我们评估将YOLOV5s部署到ZU3上,300MHz主频下性能大概可以做到16FPS(该硬件架构下,理论最高28FPS)。 

三 具体部署--待续

1、硬件框架

神经网络加速器硬件架构如上,包括指令调度/控制、片内/片外数据通信模块、计算引擎、缓存单元及NPU配置寄存器等,接口采用标准的AXI与外部缓存DDR/Hyperram进行通信,采用AXI-Lite用于访问配置和状态寄存器。

卷积类型:常规卷积、深度可分离卷积;支持Upsample/pooling/reorg/concat/route及各种ReLu函数,可扩展支持INT4/INT8/INT16多精度量化。

特点就是专门设计了指令集架构,支持多种指令,同时支持不同指令之间的串行/并行执行,可不依赖于CPU进行控制。

为了便于部署,采用算法与硬件、算法与编译器、编译器与硬件的协同设计。

通过在软件层面进行训练-量化-和指令编译生成,支持算法快速迭代和应用快速部署应用。

在硬件层面支持扩展和算子扩充,以适应不断迭代的神经网络新算法。

2、模拟器验证

模拟器主要是为了快速验证量化后的网络推理过程,同时对资源和性能进行快速评估,毕竟基于FPGA的仿真验证实在是效率有点低。因此专门利用python搭建了针对底层硬件NPU架构设计的神经网络模拟器。

3、FPGA仿真验证

4、实际硬件部署

DEMO演示包括sensor采集、图像预处理、神经网络加速及后处理和显示。

四 结论

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值