《深度神经网络FPGA设计与实现》课件_第7章.pptxVIP

《深度神经网络FPGA设计与实现》课件_第7章.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第7章基于FPGA实现YOLOV2模型计算加速实例分析;

7.1神经网络基本算子的FPGA实现;

通常,在对图7-1所示的神经网络模型和参数分析后,可以把神经网络需要加速计算的任务按计算加速的层级划分为整体神经网络加速、单层神经网络加速、神经网络算子加速三个层次。如图7-2所示的神经网络算子层通常包含矩阵卷积、矩阵乘法、Hadamard积等基本计算单元;常见单层神经网络通常有卷积层、池化层、全连接层、其他非线性函数层等;整体神经网络可以通过单层神经网络搭建,常见的有LeNet、VGGNet、ResNet等。;

;

;

当然,也可以把神经网络按需要加速任务的灵活性和加速性能的需求不同,分层设计:

(1)专用神经网络加速。

(2)可配置神经网络加速。

(3)神经网络算子加速。;

按灵活性和加速性进行分层设计,示意图如图7-3所示,图中L1层为神经网络算子加速,L2层为可配置神经网络加速,L3层为专用神经网络加速。其中,L3层专用神经网络加速性能高,但加速灵活性差;L1层神经网络算子加速灵活性够高,但加速效果相对较差;L2层可配置神经网络加速效果理想,灵活性高。;

;

7.1.2卷积算子设计

当前大多数深度学习模型中的卷积层运算如式(7-1)所示,表示输入通道数为m、输出通道数(也即卷积神经元数量)为n的卷积运算。其特点是:层运算过程中,数据会被多次使用(每个神经元用一次),而卷积参数只参与一次。

(7-1);

式(7-2)为式(7-1)的特殊情况,表示一个神经元内的多个卷积内核之间参数共享。其特点是:层运算过程中,数据会被多次使用(每个神经元用一次),卷积参数也会多次参与(每个输入数据用一次)。

(7-2);

图7-4是一个卷积算子设计示例。;

如图7-5所示,PE选择54?×?54的点乘,既可以配置成1个7?×?7的卷积算子,又可以配置成2个5?×?5的卷积算子,还可以配置成5个3?×?3的卷积算子,从而适应不同神经网络层对卷积算子的不同设计???求。;

;

为了平衡卷积算子IP对图像和卷积参数访存带宽的需求,同时也为了提高数据复用性,并充分发挥FPGA内各计算单元的性能,当图像达到一定大小时,需要对数据结构进行必要的分割和调整,可按块分割,也可按行分割,如图7-6所示。;

;

分割后的图像可以同时送往不同的卷积IP同时计算,图7-7为卷积算子设计的横向分割计算示意图。;

;

卷积算子的计算部分通常用FPGA内的DSP资源实现。图7-8为一个3?×?3卷积算子设计的FPGA实现DSP结构图,其中3?×?3卷积用9个DSP做点乘运算和加法运算。;

;

图7-9为抽象出的5?×?5点乘计算结构,其中乘法部分使用了5个FPGA内DSP单元,相加部分可以单独调用DSP进行相加,也可以复用乘法部分使用的DSP内部加法器进行相加。;

;

图7-10所示的卷子算子IP通过12个5?×?5点乘算子级联,兼容实现了12个Conv2?×?2、6个Conv3?×?3、3个Conv4?×?4、2个Conv5?×?5、1个Conv6?×?6或者1个Conv7?×?7所需的乘加运算,共计占用60个DSP。;

;

7.1.3全连接算子设计

全连接层(FullyConnectedLayers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。

在实际使用中,全连接的核心操作就是矩阵向量乘积,全连接算子的计算通常就是m?×?k维特征图向量与参数矩阵k?×?n进行矩阵乘法运算,输出为新的m?×?n维特征图,如图7-11所示。;

;

卷积神经网络中全连接层算子在计算时,m大部分等于1,即通常是1?×?k维特征图向量与参数矩阵k?×?n进行矩阵乘法运算,输出为新的1?×?n维特征图,如图7-12所示。;

;

而矩阵乘运算通常在FPGA中采用DSP来实现其乘法和加法部分,图7-13为5?×?5加乘计算结构,它实现了[a0,a1,a2,a3,a4]与[b0,b1,b2,b3,b4]的点乘求和计算。其中,乘法部分使用了5个FPGA内DSP单元来实现按点分别相乘,然后将相乘的结果通过5个DSP分级相加来实现求和;相加部分可以单独调用DSP实现,也可以复用乘法部分使用的DSP内部加法器实现,后者可以更高效地利用FPGA内的DSP资源,并可以在相同的芯片上实现更高性能的计算,但对设计者的设计水平和设计经验要

文档评论(0)

kd8w + 关注
实名认证
文档贡献者

kd8w

1亿VIP精品文档

相关文档