芯学长 | 掌握芯资讯,引领芯未来

您当前所在位置:首页 > 集创赛 > 赛事分享

全国集成赛赛事经验分享——FPGA赛道

发布时间:2023-06-02来源:知乎“北城以南single” 0

本次给大家分享的是第六届集成电路创新创业大赛国家二等奖,该团队会得了FPGA赛道的奖励,以下提供具体内容,希望对想要参加集成电路创新创业大赛的同学们有所帮助。

集创赛海云捷讯杯题目要求

一、杯赛题目:基于FPGA CNN加速器的SSD_MobileNetV1模型目标检测实现

二、参赛组别:A组、B组

三、设计任务:

1.基于百度Paddle-lite v2.9框架①(必须)、海云捷迅自研CNN加速器(可选,也可以使用自己设计的加速器)(包含卷积、DW卷积、RELU、RELU6、量化算法,其中量化是把计算好的32位定点转为浮点再转为8位定点输出)。

2.基于该加速器Linux驱动示例,可以看到数据重整的方法。根据算子运行位置(PS、PL)的不同,参照驱动示例来重新排列数据。

3.基于VOC数据集进行训练。

4.对模型在要求的设计指标内进行各种优化操作,包括剪枝、量化等。

5.提出设计方案,实现并完成指定测试图片集的目标检测功能。

6.基础部分60分(满足设计指标),附加部分40分(在满足设计指标的情况下,按照推理速度进行评分)。最后总分按两部分相加得到。

7.备注:海云捷迅会提供(杯赛钉钉群内下载):

1) FPGA配置文件

2) CNN加速器相对应的Linux驱动示例

3) Paddle-lite v2.9①、SSD_MobileNetV1②(全精度版本)的Demo程序;驱动示例;CNN加速器FPGA配置文件

四、设计指标:

1.模型部署完成,能正确识别图片数据。

2.帧率不低于2帧。

3.精度不低于65%。

五、附加题:

在满足设计指标的情况下,按照推理速度进行评分

六、提交内容:

1.汇报PPT:项目介绍、关键技术介绍、性能指标

2.详细设计方案:系统架构分析、关键技术分析、性能分析

3.工程源码、仿真以及测试报告。

七、评分标准:

八、参考文献:

1.基于Paddle-lite v2.9的DEMO工程。包括驱动文件以及FPGA配置文件。

2.海云捷迅人工边缘智能实验平台使用手册。

3.《Cyclone V Hard Processor System Technical Reference Manual》

4.《AIGO_C5MB_V10 Schematic》

5.《Cyclone V SoC 开发板产品手册》

我们的作品

摘要

近年来深度学习成为人工智能研究中最为热门的领域之一,随着深度学习的不断发展,其目标呈现出两种不同的趋势,一个是神经网络复杂化,大模型解决困难的问题,但是在面积、功耗受限的移动设备上部署时无法保持高性能和高精度;另一个便是神经网络轻量化,便于部署于各种嵌入式设备中。此次使用的SSD-MobileNetV1模型便是较为出色的轻量化模型。

本设计主要是基于海云自研CNN加速器实现SSD-MobileNetV1模型目标检测,赛方提供的Demo工程使用未优化的全精度模型,推理速度缓慢。赛题主要目标是在保持65%mAP精度的前提下尽可能减小推理时间。

本文首先阐述了SSD-MobileNetV1网络模型、缩放、剪枝、QAT量化与defora量化等的原理,对PaddleDetection和Paddlelite架构进行深入分析。

通过对全精度模型进行敏感度分析,根据分析结果进行结构化剪枝剪除敏感性低的卷积核。同时将SSD细粒度算子合并,使用剪枝量化联合策略,使模型工作成功在CNN加速器上。在CNN加速器部分,对电路进行时序约束与时序分析,通过优化violation路径将加速器频率进一步提升为190MHZ。

在SDK部分进行耗时分析,找到耗时的主要原因,通过优化SDK中数据缓冲的方式,同时创新性地提出NEON交叉替换重排算法,新的重排算法能够减小一半的计算量和55%的重排时间。对SSD卷积头进行全量化,同时对prior_box算子离线计算处理,成功将6个子图融合,减小了FPGA与ARM的交互时间,实现卷积连续调度。

在驱动部分,优化了双缓冲逻辑的执行顺序,对参数传输时间无法被计算时间掩盖的节点提前传输参数,同时对根节点的参数传输进行内核态与用户态内存共享,进一步压缩推理时间。

经过上述一系列优化,模型精度mAP为65.34%,推理时间减小到116ms。达到8.62帧/s的指标,远超赛题基本要求。

关键词:目标检测、神经网络加速器、模型压缩、双缓冲、工作频率、连续调度

目录

摘 要. 1

1绪论. 5

2系统架构分析. 8

3关键优化分析. 19

4性能分析. 38

5总结与展望. 41

6参考文献. 42

7附录. 43

1绪论

1.1设计背景

近些年来深度学习这一概念逐渐在人工智能领域兴起,成为当前最热门的研究领域之一。深度学习发源于机器学习,是通过对一个问题大量的样本进行重复训练最终得到一个解决问题的最优解,并将最终训练的模型应用于这一问题的推理。事实上这一理念在上个世纪便已经问世,但是直到10年以后,由于计算机算力的提高以及数据库的不断扩大,深度学习才展示出其巨大的实力。

经过多年发展,深度学习以从最为经典的VGG模型衍生出众多的优秀模型。而当前的深度学习模型发展的趋势主要有两个。一个是通过丰富网络结构,不断提高解决问题的精度,从而实现更加高级的功能,这样的模型通常都十分庞大,比如GPT-3模型就有1750亿参数。这种模型在目标检测或人声识别上甚至远超人类的水平,但它们的问题也十分明显,即这类模型基本难以在日常生活中使用,它们基本只能在服务器中训练与运行。由此引出另一个研究的方向,即模型轻量化,通过巧妙地设计简单模型,将运算的时间与复杂度都大幅度下降,而仅需要付出一些微小的精度下降作为代价。这些微小模型通过剪枝、量化等操作后可以在保持需求的精度的前提下实现各种嵌入式设备的部署与推理,将深度学习的技术普及到日常生活中。而本次设计采用的SSD-MobileNetV1模型便是轻量化模型的经典模型之一。

image

图1.飞桨开源组件使用场景

在进行深度学习项目开发时,选择一个好的深度学习框架是重要的。全世界最为流行的深度学习框架有PaddlePaddle、Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch。其中本次设计所采用的PaddlePaddle框架便是百度自主研发的深度学习框架,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台,也是主流深度学习框架中一款完全国产化的产品。飞桨(PaddlePaddle)集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,极大程度上方便了深度学习的学习与使用。

1.2海云捷讯开发板介绍

海云捷讯C5平台为ARM+FPGA异构平台,ARM完成Paddle-lite的模型解析,算子融合、优化等,FPGA完成耗时的运行工作,如实现卷积,池化,全连接等。ARM通过Runtime SDK 和驱动交互,由驱动完成ARM对加速器的配置和子图执行,通过控制寄存器启动FPGA执行运算,在FPGA完成计算后,通过状态寄存器或中断通知ARM读取运算结果。由Intel高级综合工具(HLS)综合出来的加速器IP通过Quartus Platform designer 进行连线集成到片上SoC系统,烧写到海云AIGO_C5TB开发板进行模型推理。

如下图所示,AIGO_C5TB开发板是由重庆海云捷迅科技有限公司开发的一款围绕英特尔SoC FPGA 构建的性能强大且功能齐全的硬件设计平台。该平台采用核心板加扩展板的方式,方便用户对核心板的二次开发利用。

image

图2.海云捷讯C5TB开发板

1.3本报告的组织架构

本文主要目的是使用SSD_MobilenetV1目标检测,结合海云捷讯提供的加速器,保持65%mAP精度的前提下尽可能减小推理时间。本文一共分为五章,具体安排如下:

第一章,绪论部分,介绍了当前国内外深度学习的发展现状与实现嵌入式部署进行目标检测的意义,同时介绍了百度自研Paddle框架与海云捷讯C5TB开发板。

第二章,系统架构分析,对整体的系统架构进行了详细的解析,深入分析了SSD-MobileNetV1网络的特点,阐述了模型敏感度分析、敏感度剪枝与量化的原理和步骤、详细分析了PaddleDetection训练框架、Paddlelite部署、推理框架与硬件接口。

第三章,关键技术分析,介绍本设计的关键技术,逐一详细说明了当前为了提高推理速度而进行的所有优化。这些措施分别是模型缩放与敏感度剪枝、剪枝量化联合策略、加速器频率提升、SDK优化与数据重排NEON实现、卷积算子连续调度与prior_box离线计算,最后是驱动优化,包括双缓冲、参数提前传输、内核态用户态内存共享。

第四章,性能分析,主要展示了当前设计达到的最佳性能,同时与最初的性能进行了对比。

第五章,项目总结,是对于整个比赛项目的总结。

内容来源:知乎“北城以南single”,侵权删除。

【免责声明】:本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。

文章评价

-   全部 0 条 我要点评