为什么用FPGA来加速YOLOV2.docx

上传人:lao****ou 文档编号:875350 上传时间:2024-07-08 格式:DOCX 页数:7 大小:98.22KB
下载 相关 举报
为什么用FPGA来加速YOLOV2.docx_第1页
第1页 / 共7页
为什么用FPGA来加速YOLOV2.docx_第2页
第2页 / 共7页
为什么用FPGA来加速YOLOV2.docx_第3页
第3页 / 共7页
为什么用FPGA来加速YOLOV2.docx_第4页
第4页 / 共7页
为什么用FPGA来加速YOLOV2.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《为什么用FPGA来加速YOLOV2.docx》由会员分享,可在线阅读,更多相关《为什么用FPGA来加速YOLOV2.docx(7页珍藏版)》请在第一文库网上搜索。

1、为什么用FPGA来加速Y010V21GPu加速:GP1J是一种多核处理器,GPU起初是用来进行图形处理任务的,经过长时间的发展,GPU的发展是日趋复杂的,而且针对不同的领域也有不同。当GPU被用来进行通用计算时,就产生了一些通用的计算框架,比如说OPenCI和CUDA。比如说高端GPUIItan系列,其频率可以达到IGhz,拥有330GB的带宽,提供每秒极高的算力,但是功耗也达到了惊人的250W。对于嵌入式的GPU,比如说graX1,拥有256个处理核,带宽为2Bs,同样在IGhZ的频率下,算力仍可以达到近Titan的十分之一,但是功耗只有10W。2. ASIC加速:这些直左分为两类:第一类,

2、用来做训练和推理,这些芯片可以用来做DNN的训练,也可以做DNN的推理。第二类,用来做推理,这些ASICs用来运行在GPU或者其他硬件上已经训练好的模型,然后对训练过的网络进行修改,使得网络可以运行在不同的AS1C上。3. FPGA加速:FPGA是一种可以重复配置的电路。在延迟方面,FPGA要比GPU更好。FPGA可以提供很高的带宽同时也可以降低延迟。1.2FPGA实现要实现某种运算,其中一种方法就是将这种运算以电路的方式实现,而使用FPGA就是其中一个相对简单的方法,使用者可以将FPGA配置为所需要的电路。基于指令的硬件是通过软件来实现的,而FPGA是通过专用硬件实现的。对于一些需要低延迟的

3、算法,比如说智能驾驶,FPGA的延迟要比GPU更低。当时用FPGA时,可以将延迟控制在1微秒或者1微秒之外,但是对于CPU来说,延迟低于50微秒,性能就已经很强了。除此之外,FPGA的定制化更强,延迟能够人为的控制,FPGA不需要操作系统,内部也不需要想CPU一样通过总线进行通行。在FPGA中,可以连接任何的数据源,比如说网口或者传感器,可以直接通过芯片的引脚就可以连接,这就和GPU与CPU形成了鲜明的对比(GPU和CPU与外界数据交互需要标准总线进行连接)。FPGA的直连技术可以为数据提供很高的带宽,同时也降低了时延。2、为什么用FPGA来加速Y010V2对于卷积核和池化的运算来说,因为是矩

4、阵运算,这就需要相当高的算力。而由于卷积和池化运算都是流式运算,所以将他们放在FPGA中实现从而进行加速是一个很好的选择。对于YO1oV2中的部分运算,比如说计算坐标图像的预处理等,都是一些非流式运算,或者是标准运算,这些运算适合放在ARM中进行,于是将YO1oV2中的运算做一下划分,充分利用软硬件协同的优势,从而对整个算法进行加速。FPGA:卷积层和池化层ARM:SoftmaxTyPeFi1tersSneZStrideOutputHW/SWCoJnfOhItiDj13233224224HWMajoo122/2112112HWCo1nrohItiDI16433112112HWMajqtoo12

5、2/25656HWConvo1ution128335656HWConvo1ution64115656HWComrohitbn128335656HWMaoo122/22828HWCoitvohitiDii256332828HWConvohtn128112828HWConvohtn256332828HWMaoo122/21414HWConvohitiDii512331414HWCOJnfOhItiDjI256111414HWConvo1ution512331414HWConvohition256111414HWConvohtn512331414HWMajoo122/277HWConvohition

6、10243377HWConvohtn5121177HWConvohition10243377HWConvohtn5121177HWConvohition10243377HWConvohitionIOOO1177HWAvgpoo1G1oba11000HWSoftonaxG1oba11000SW3、FPGA简介3.1 FPGA的基本结构基本构成:C1B(可配置逻辑块),IOS(输入输出模块),IR(互联资源)FPGA的功能是由S幽中的数据类配置的,所以大部分FPGA芯片中都是采用查找表结构的。FPGA中组合逻辑使用小型1UT实现的,这些1UT输出端连接到D触发器的输入端,D在连接到其他逻辑电路或者

7、是驱动IO来对其进行驱动。FPGA中的逻辑是通过加载编程数据来实现的,这些编程数据通过内部静态存储单元来进行加载。存储单元的值可以配置逻辑单元各个模块的连接通路,以及逻辑单元所实现的功能,也可以配置IO的功能以及电气鼠性等,这些最终构成了一个可以实现目标功能的FPGA系统。3.2 FPGA的相对优势:与DSP和MCU相比,FPGA的运算速度较快,实现控制功能更加灵活,与传统的CP1D相比,FPGA更适合做一些规模更大逻辑更复杂的设计。(1) FPGA有六部分构成:可编程C1B,可编程10,布线资源,嵌入式RAM,专用迎合以及内嵌功能模块。C1PD功能更加简单,构成:可编程10,基本逻辑单元,布

8、线poo1。2).FPGA更容易实现时序逻辑,CP1D更适合大规模组合逻辑。(3) .FPGA连线资源非常丰富,且C1B的利用率很高。(4) o同专用集成电路比,FPGA更加灵活,开发周期更短,可以降低成本,同时也可以保证保密性和可靠性。4、PYNQ开发框架与H1S加速理论4. 1PYNQ传统的FPGA的框架有两种,一种是FPGA与CPU互联的,另一种是FPGA与RAM互联的。但是这两种开发对于然间人员来说很不友好,而PYNQ就很好的解决了这个问题,。PYNQ可以在ZYNQ上面运行,ZYNQ包含P1和PS部分,PS部分是ARM的处理器,上面可以运行11MK系统,操作系统上运行PtyhOn。P1

9、部分是可编程逻辑资源,在开发过程中,首先在P1端设计IP核,将IP核配置成为AX1总线形式,然后在PS中对驱动函数进行调用。PYQN是一种全新的开发框架,能够用PYTHON对其进行快速的FPGA部署,在部署过程中不用研究硬件的实现细节。5. 2H1S开发流程是基于C语言,能够节约用户大量的时间。其重要流程包括:C开发,C仿真,C综合以及RT1综合等。6. 2.1用H1S加速IP内层并行现实化:在FPGA实现深度学习算法中的一层,在计算时候对这一层进行复用,计算完一层以后将数据缓存到片外的幽中,当进行下一层计算式,再将数据读入运算单元中,在这个过程中需要FPGA的ARM来对IP核进行配置,包括输

10、入输出通道的数量,卷积核的尺寸等。配置完成后,IP和就可以进行相应层的运算。实现卷积IP核的经典架构这个系统包含了片外DDR,ARM处理器,控制器,运算单元以及各种缓冲器。缓存器:输入输出,权重缓冲等。输入的图像首先要加载带输入的寄存器中,然后通过运算单元执行卷积操作,卷积操作是通过多个运算单元来运算的,以保证运算的速度。在进行卷积运算时,第一季输出缓存中的数据会被输出到第二级输出缓存,在当前层运算完之后,运算结构就会成为下一级的运算输出,用这样的方式实现网络每一层的加速。如上图所展示的流程图,可以实现网络在单层内部运算的并行优化,不必将整个网络全部展开,可以奖励网络的资源占用率,进而降低功耗

11、,实现了新跟你乖面积以及功耗的平衡。如果想药实现单层网络的加速效果,就需要在层的内部实现流水。所以就需要一种数据拆分机制,将数据分为多个小块,然后并行去处理这些数据。将图像分割为多个小块,每个小块的尺寸为TrXTcXTn,而这一块经过计算之后得到的结果应该是卷积计算的部分和,尺寸为ThXT1XTm,在这个运算过程中,所欲要的权重尺寸是KXKXTnXTmo在处理完这一块数据后,再处理这个特征图的下一块数据。这样按快处理,直到本层的数据处理完成。4.2.2循环优化H1S针对循环的优化指令很多,这里只使用1OOPPipe1ine和1oopUnro11ing01oopPiPe1ine的作用是对循环的进

12、行流水线化的并行处理,这种方式可以让两轮循环执行时间重叠,使得在本轮循环过程中下一轮循环也可以同时执行。上述图片是未经过流水化处理和经过处理的运算步骤,可以清楚地看出,如果以两次迭代为例,未经过处理的运算需要经过5个世鲤周期才能完成运算,而经过流谁化处理的运算仅仅需要三个时钟周期。1oopUnorUing在没有进行循环优化之前,循环的运行按照默认设置来操作的。而当进行循环展开后,循环的电路会被设置为N份,Ni般有H1S中的指令factor来指定。比如说factor为2时,此时的迭代次数为8的话,那么迭代会被分为4次进行,内次是2个循环一次实现的。4.3硬件系统的构建4.3.1P1部分P1部分使

13、用H1S来实现卷积神经网络。硬件配置如下:具体参数ZYNQProcessor四核C1ockwizard150MhZE时钟acce1erator150MhZ主时钟、axjte接口、接口ProcesssorsystemresetIpresetsinterconnectresetnxinterconnectaxjtaxJfu11最后将P1端生成的bitfi1e加载到FPGA中,最后在PC上观察吃力后的图像,进行结果分析与统计。5、实验结果加速前后的时间对比。doghorsePerSOn加速前后预测微率平均误差2%1%2%加速前平均运行时间1921901.87加速后平均运行时间O1S0.19O1S加速倍数10.671010.39审核彭静

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服