xml文件 卷积神经网络_cnn-卷积神经网络在fpga上实现(一).docx

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

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

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

Caffe 深度学习框架

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

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

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

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

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

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

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

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

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

ImageNet卷积神经网络

图2:ImageNet CNN - 卷积神经网络

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

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

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

表1:卷积核效率

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

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

FPGA 逻辑器件

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

Bit 精度

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

图4:Arria 10定点DSP配置

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

OpenCL库函数

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

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

图5:Arria 10 GX1150资源

Arria10最大的可用设备是GX 1150

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值