FPGA的CNN实现硬件加速需要考虑这些因素

网上对于     FPGA   CNN加速的研究已经很多了,     神经网络   的硬件加速似乎已经满大街都是了,这里我们暂且不讨论谁做的好谁做的不好,我们只是根据许许多多的经验来总结一下实现硬件加速,需要哪些知识,考虑哪些因素。

 FPGA的CNN实现硬件加速需要考虑这些因素_设计制作_电源/新能源

很多人都说在做FPGA的神经网络加速,可是有多少人真正拿出了实际结果,可能大部分人就是用HLS(高层次综合)写了个四五层的小网络,或者简单实现了一下卷积操作。真正要用FPGA做加速,得先明白算法的整体流程以及数据的输入输出形式,然后结合FPGA的特点设计相应的加速结构,在结构设计层次里面涉及到一些关键的点。例如,如何加速原始卷积(winograd、     fft   或者其他),如何对数据进行复用减少数据的搬移次数,如何设计合理的流水线结构。在算法层次,需要对计算进行量化,因为现有的算法大部分都是浮点运算,FPGA 擅长定点运算,所以必须量化,卷积层量化方法有dynamic fixed point 方法,有聚类方法,也有mini float point 方法等等,当然除了卷积,还有softmax等分类算法如何量化,NMS如何在硬件上实现。另外目前的神经网络越做越大,FPGA资源有限,因此对网络进行裁剪也是一个需要关注的问题。

总的来说用FPGA 加速神经网络,是一个整体性工程,需要软件和硬件协同配合,另外硬件这边除了核心算法,还需要考虑数据的输入以及调度形式,可能需要用PCIE 等高速接口实时传入图像,再利用DDR3/4对计算的部分结果进行缓存,当网络确定,而一个FPGA 资源又不够用的时候,可能需要考虑两个FPGA 互联,那就需要用到光口或者其他高速接口,这些外围高速接口,如果之前没有接触过,任何一个都可能花费相当长的时间。所以说,做FPGA 加速,一个人是绝对不行的,另外,目前能够进行神经网络加速的FPGA ,xilinx 的UltraScale K/V/Zynq系列是比较合适的,但是这些属于高端FPGA,当然,不是说中低端不行,而是以目前主流网络和现有的优化手段,在资源较少的FPGA 上进行加速难度较大,而高端FPGA 价格都比较高,所以必须得考虑成本问题。

42
98
0
75

相关资讯

  1. 1、陈瑶再次尝试小红帽造型,五官没有任何变化,却再也不是岳绮罗2175
  2. 2、三浦春马和三浦翔平发好基友性感合照健美肉体引“狼嚎”789
  3. 3、原来成龙也是有替身的,被称为“车神”,成龙还送他一辆法拉利!2738
  4. 4、34岁王宝强近照,摆脱前妻长发飘飘如绅士,8岁儿子长得很像他2038
  5. 5、《女编辑》完美收官张子萱被封“榜样北京妞”166
  6. 6、为了拍这部电影,找到了洪金宝,引见这个人的亲生儿子!844
  7. 7、《无名之辈》天津路演告捷潘斌龙笑谈抱娃细节湿润眼眶3582
  8. 8、批评《邪不压正》的尺度:姜文是用来被爱的,不是被理解的2185
  9. 9、是影像复制还是文化转码?翻拍剧大年,“复制粘贴”也是门技术活4198
  10. 10、冯绍峰、娜扎新戏杀青!现场拿香槟喷工作人员,娜扎穿红裙谢导演3786
全部评论(0)
我也有话说
0
收藏
点赞
顶部