您的位置 首页 编程

FPGA的CNN完成硬件加速需求考虑这些要素

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

网上关于FPGACNN加快的研讨现已很多了,神经网络的硬件加快好像现已满大街都是了,这儿咱们暂且不评论谁做的好谁做的欠好,咱们仅仅依据许许多多的经历来总结一下完成硬件加快,需求哪些常识,考虑哪些要素。

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 价格都比较高,所以有必要得考虑本钱问题。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/90021.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部