CNN卷积神经网络在FPGA上的实现一.docx

CNN卷积神经网络在FPGA上的实现一.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE/NUMPAGES

-卷积神经网络在上的实现(一)

卷积神经网络()已被证明在复杂的图像识别问题上非常有效。本文将讨论如何使用公司基于软件开发套件编程的加速产品来加速卷积神经网络的计算。可以通过调整计算精度来优化图像分类性能。降低计算精度可使加速器每秒处理越来越多的图像。

深度学习框架

是一个深度学习框架,具有表达力强、速度快和模块化的思想,由伯克利视觉学习中心()和社区贡献者开发。网站

框架使用接口来描述特定卷积神经网络所需的不同处理层。通过实施层的不同组合,用户能够根据其给定的需求快速创建新的网络拓扑。

框架最常用的处理层主要有:

卷积层:卷积层将输入图像与一组可学习的滤波器进行卷积,每个滤波器在输出中产生一个特征图

池化层:池化最大可以将输入图像分割成一组非重叠的矩形,并且对于每个这样的子区域,输出最大值

线性修正()层:给定输入值x,如果x0,则层将计算输出为x,如果x=0则计算输出为*x。

层:将图像视为单个向量,每个点对新输出向量的每个点有贡献

通过将这4层移植到,绝大多数正向处理网络可以使用框架在上实现。要访问加速卡上的版本的代码,用户只需要更改网络描述文件中的-卷积神经网络层的描述,这等同于修改代码版本。

图1:典型的-卷积神经网络的示例图

卷积神经网络

图2:-卷积神经网络

是一个备受推荐且使用最为广泛的卷积神经网络,具有免费的训练数据集和基准。本文讨论了针对-卷积神经网络的实现,当然这里使用的方法同样适用于其他网络。

图2显示了-卷积神经网络所需的不同网络层。有5个卷积和3个层。这些层占用该网络处理时间的99%以上。对于不同的卷积层,有3种不同的滤波器尺寸,分别为11×11,5×5和3×3。因为每个层的计算时间根据所应用的滤波器的数量和输入图像的大小而不同,所以为不同的卷积层优化不同的层将效率是比较低的。为了避免这种低效率,使用最小的滤波器(3×3)作为较大卷积块的基础。由于它们处理的输入和输出特征的数量,3×3卷积层是计算量最大的

较大的滤波器尺寸可以用较小的3×3滤波器的多次表达。这虽然会降低内核处理的效率,但允许不同层之间的逻辑重用。这种方法的成本如表1所示。

表1:卷积核效率

3×3卷积核也可以被层使用。

表2:使用3×3滤镜时的层计算要求

逻辑器件

器件具有两种处理资源类型,即和逻辑。逻辑是针对大型(18×18位)浮点乘法或乘法运算器优化的专用逻辑。这比使用逻辑更有效率,因为这样的乘法资源消耗很大。鉴于操作中的乘法通用性,供应商为此提供了专门的逻辑。做的更进一步,允许重新配置逻辑来执行浮点运算。为了提高卷积神经网络处理的性能有必要增加在中实现的乘法次数。另一种方法是降低位精度。

精度

大多数实现使用浮点精度来进行不同的层计算。对于或实现这不是问题,因为浮点是芯片架构的固定部分。对于来说,逻辑元素不是固定的。的10器件嵌入了可以用于固定点乘法的浮动模块。实际上,每个组件可以用于两个独立的18×19位乘法。通过使用18位固定逻辑执行卷积,与单精度浮点相比,可用运算符的数量加倍。

图4:10定点配置

根据卷积神经网络的应用性能要求,可以进一步降低位精度。如果乘法的位宽可以减少到10位或更少,则可以仅使用有效地执行乘法。与使用逻辑相比,这样可以增加可乘数。

库函数

提供了将用户定义和优化的组件纳入其编译器工具流程的能力。这允许使用标准库符号创建和包含这样的优化功能。库组件允许有经验的程序员以汇编语言程序员创建的方式创建高效的实现,并且包含x86优化的函数。

对于使用的-卷积神经网络层,简单的定点实现可以采用10位系数来获得的最小减少量,这相对于单精度浮点运算保持小于1%的误差。因此创建10位3×3卷积的优化库,受资源的限制,这个库被实现(复制)多次。

图5:101150资源

10最大的可用设备是1150.该设备具有约512个卷积块的资源以及应用程序控制逻辑。

510T硬件平台

卷积内核的并行运算增加的数量加大了对输入带宽要求。为了避免全局内存成为瓶颈,一次计算多个图像时候可以为每个不同的图像重新使用卷积滤镜权重。这对于层是特别重要的,其中对于每个点对点连接需要新的一组滤波器权重,其中从全局存储器检索权重的瓶颈是瓶颈。幸运的是,卷积层重用了特征图像中每个点的权重数据。最小卷积特征图像为13×13像素,因此卷积权重仅在最坏情况下每169次迭代更新一次。

图6:510T加速器

选择硬件平台510T实现-卷积神经网络,510T是与大多数服务器平台的相兼容的加速卡,旨在兼容英特尔至强或加速器。510T具有两个101150,具有60/的

文档评论(0)

138****8091 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档