【集创赛】2022第六届集成电路创新创业大赛国家二等奖经验分享
本次集创赛从2022年3月至2022年8月,历时半年,经历6月初的初赛,7月底的分赛区决赛,8月的总决赛,2022第六届集成电路创新创业大赛(集创赛)全国总决赛于2022.8.21答辩结束,2022.8.22公布了最终的总决赛成绩,我们团队获得了其中的FPGA赛道海云捷讯杯的华中分赛区决赛一等奖、全国总决赛国家二等奖,现在分享一下经验。
文末提供了作品下载地址
集创赛海云捷讯杯题目要求
一、杯赛题目:基于FPGA CNN加速器的模型目标检测实现
二、参赛组别: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①、②(全精度版本) 的Demo程序;驱动示例;CNN加速器FPGA配置文件
四、设计指标:
1. 模型部署完成,能正确识别图片数据。
2. 帧率不低于2帧。
3. 精度不低于65%。
五、附加题:
在满足设计指标的情况下,按照推理速度进行评分
性能/帧率(FPS)
分值
2.5
10
13
3.5
16
20
4.5
22
24
26
28
30
35
10
40
六、提交内容③:
1. 汇报PPT:项目介绍、关键技术介绍、性能指标
2. 详细设计方案:系统架构分析、关键技术分析、性能分析
3. 工程源码、仿真以及测试报告。
七、评分标准:
八、参考文献:
1. 基于Paddle-lite v2.9的DEMO工程。包括驱动文件以及FPGA配置文件。
2. 海云捷迅人工边缘智能实验平台使用手册。
3. 飞桨官方网站/
4. 《Cyclone V Hard System Manual》
5. 《 》
6. 《Cyclone V SoC 开发板产品手册》
我们的作品摘 要
近年来深度学习成为人工智能研究中最为热门的领域之一,随着深度学习的不断发展,其目标呈现出两种不同的趋势,一个是神经网络复杂化,大模型解决困难的问题英特尔杯设计创新大赛,但是在面积、功耗受限的移动设备上部署时无法保持高性能和高精度;另一个便是神经网络轻量化英特尔杯设计创新大赛,便于部署于各种嵌入式设备中。此次使用的SSD-模型便是较为出色的轻量化模型。
本设计主要是基于海云自研CNN加速器实现SSD-模型目标检测,赛方提供的Demo工程使用未优化的全精度模型,推理速度缓慢。赛题主要目标是在保持65%mAP精度的前提下尽可能减小推理时间。
本文首先阐述了SSD-网络模型、缩放、剪枝、QAT量化与defora量化等的原理,对和架构进行深入分析。
通过对全精度模型进行敏感度分析,根据分析结果进行结构化剪枝剪除敏感性低的卷积核。同时将SSD细粒度算子合并,使用剪枝量化联合策略,使模型工作成功在CNN加速器上。在CNN加速器部分,对电路进行时序约束与时序分析,通过优化路径将加速器频率进一步提升为190MHZ。
在SDK部分进行耗时分析,找到耗时的主要原因,通过优化SDK中数据缓冲的方式,同时创新性地提出NEON交叉替换重排算法【集创赛】2022第六届集成电路创新创业大赛国家二等奖经验分享,新的重排算法能够减小一半的计算量和55%的重排时间。对SSD卷积头进行全量化,同时对算子离线计算处理,成功将6个子图融合,减小了FPGA与ARM的交互时间,实现卷积连续调度。
在驱动部分,优化了双缓冲逻辑的执行顺序,对参数传输时间无法被计算时间掩盖的节点提前传输参数,同时对根节点的参数传输进行内核态与用户态内存共享,进一步压缩推理时间。
经过上述一系列优化114信息网sitemaps,模型精度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-模型便是轻量化模型的经典模型之一。
图1. 飞桨开源组件使用场景
在进行深度学习项目开发时,选择一个好的深度学习框架是重要的。全世界最为流行的深度学习框架有、、Caffe、Theano、MXNet、Torch和PyTorch。其中本次设计所采用的框架便是百度自主研发的深度学习框架,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台,也是主流深度学习框架中一款完全国产化的产品。飞桨()集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体,极大程度上方便了深度学习的学习与使用。
1.2 海云捷讯开发板介绍
海云捷讯C5 平台为ARM+FPGA 异构平台,ARM 完成Paddle-lite 的模型解析,算子融合、优化等,FPGA 完成耗时的运行工作,如实现卷积,池化,全连接等。ARM 通过Runtime SDK 和驱动交互,由驱动完成ARM 对加速器的配置和子图执行,通过控制寄存器启动FPGA 执行运算,在FPGA 完成计算后,通过状态寄存器或中断通知ARM 读取运算结果。由Intel 高级综合工具(HLS)综合出来的加速器IP 通过Quartus 进行连线集成到片上SoC系统,烧写到海云 开发板进行模型推理。
如下图所示, 开发板是由重庆海云捷迅科技有限公司开发的一款围绕英特尔SoC FPGA 构建的性能强大且功能齐全的硬件设计平台。该平台采用核心板加扩展板的方式,方便用户对核心板的二次开发利用。
图2. 海云捷讯C5TB开发板
1.3 本报告的组织架构
本文主要目的是使用目标检测,结合海云捷讯提供的加速器,保持65%mAP精度的前提下尽可能减小推理时间。本文一共分为五章,具体安排如下:
第一章,绪论部分,介绍了当前国内外深度学习的发展现状与实现嵌入式部署进行目标检测的意义,同时介绍了百度自研Paddle框架与海云捷讯C5TB开发板。
第二章,系统架构分析,对整体的系统架构进行了详细的解析,深入分析了SSD-网络的特点,阐述了模型敏感度分析、敏感度剪枝与量化的原理和步骤、详细分析了训练框架、部署、推理框架与硬件接口。
第三章,关键技术分析,介绍本设计的关键技术,逐一详细说明了当前为了提高推理速度而进行的所有优化。这些措施分别是模型缩放与敏感度剪枝、剪枝量化联合策略、加速器频率提升、SDK优化与数据重排NEON实现、卷积算子连续调度与离线计算,最后是驱动优化,包括双缓冲、参数提前传输、内核态用户态内存共享。
第四章,性能分析,主要展示了当前设计达到的最佳性能,同时与最初的性能进行了对比。
第五章,项目总结,是对于整个比赛项目的总结。
作品下载
后续更新见专栏,本团队作品文件(包括笔记、官方文档、初赛、地区赛和决赛的答辩文档+技术文档+代码见2022集创赛作品)
【本文来源于互联网转载,如侵犯您的权益或不适传播,请邮件通知我们删除】