【论文解读】 FPGA实现卷积神经网络CNN(三) 深鉴科技: Going Deeper with Embedded FPGA Platform for CNN

博主评论:深鉴科技是国内做FPGA实现CNN的高端玩家,2018年被Xilinx收购,现在专做移动端的深度学习加速,开发了端到端的深度学习加速框架DNNDK,博主实测加速效果(ZCU102开发板;计算能力>1.2Tops/s,引入ARM多线程可进一步达到>2Tops/s)。这篇2016年的文章是深鉴科技早期实现卷积神经网络加速的一篇硬核论文,文章写得很深入,这里只做个简要解读~

论文地址:https://nicsefc.ee.tsinghua.edu.cn/media/publications/2016/FPGA2016_None_6tAJnDW.pdf

目录

摘要:

1,介绍

2,CNN背景

3,已有的相关工作

3.1 模型压缩

3.2 数据量化

3.3 CNN加速器

4,CNN复杂性分析

5,数据量化

5.1 量化流程

5.2 不同量化策略的分析

6,系统设计

6.1 整体结构

6.2 PE结构

6.3 运行细节 

6.3.1 Workloads Schedule

6.3.2 Controller System

7,内存系统

7.1 缓存设计

7.2 卷积层数据安排策略

7.3 全连接层数据安排策略

8,系统评估

8.1 理论评估

8.2 表现分析


摘要:

指出FPGA用作CNN加速器有很好的前景,但是有限的带宽和片上内存大小限制了FPGA的表现。我们对当前最先进的CNN进行深度分析,发现卷积层占用大量计算资源,全连接层占用大量内存资源。我们使用动态精度数据量化方法,并且提出一个对CNN中所有层有效的通用卷积器。我们采用4位或8位动态量化精度在深层VGG16网络上只下降了0.4%的精度。为了更好地利用外部储存带宽,我们提出了一个data-arrange method。最终我们使用16位精度在ZCU706上推断VGG-SVD网络获得了4.45fps,top-5 accuracy为86.66%;卷积层和全部层的算力表现分别为:187.8Gop/s和137Gop/s,使用150MHz工作频率。

 

1,介绍

当前先进的CNN模型都极其复杂,模型大多都只能放在外部储存中,因此,在嵌入式系统上加速CNN,外部储存与片上存储间的带宽变成了一个严重的问题。并且以前的研究只专注于卷积层,在全连接层仍有很多可以改进的地方。

我们的工作包括:

1. 对VGG16进行深入分析,发现其有1.38亿个权重,需要超过30G运算量,卷积层占用大量计算资源,全连接层占用大量内存资源。

2. 我们第一次提出动态精度数据量化的自动流程,并考察不同的数据量化配置。我们对VGG16模型使用8/4位动态定点量化只带来了0.4%的精度损失。对于动态精度量化,我们使用了特别的硬件设计。

3. 我们对第一层全连接层权重使用奇异值分解(SVD),降低了85.8%的存储资源消耗,设计可以用于计算全连接层的卷积器,减少资源消耗,提出了一种数据管理策略来加速全连接层。

2,CNN背景

3,已有的相关工作

软件方面在尽量少得损失精度下压缩网络;硬件方面设计特有模块和结构提供数据重用,增强数据“本地性”,加速卷积计算。

3.1 模型压缩

剪枝可以减少模型复杂度,可以避免过拟合。

3.2 数据量化

使用更少位数的定点数表示权重可以减少内存占用与计算资源占用,在【7】的工作中,将32位数用16位数代替,在mnist数据集上只引入了0.26%的精度损失。

在FPGA上,数据量化策非常重要。

3.3 CNN加速器

设计CNN加速器主要关注两个方面,一是优化计算引擎,二是优化内存系统。

4,CNN复杂性分析

在CNN推断过程中,我们使用计算一个卷积层所需要的乘法次数来评估时间复杂度。

假设一个具体的卷积层,卷积核大小K*K=K^2,输入/出特征图大小R*C,输入通道数N_{in},,输出通道数N_{out},则时间复杂度:

C^{time}_{conv}=O(K^2*N_{in}*C*R*N_{out})

池化层的时间复杂度:

C^{time}_{pool}=O(R*C*N_{in})

全连接层的时间复杂度:

C^{time}_{FC}=O(N_{in}*N_{out})

空间复杂度代表权重参数所占用内存大小,具体的:

卷积层空间复杂度:C_{conv}^{space}=O(N_{in}*N_{out}*K^2)

全连接层空间复杂度:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值