摘
要
深度神经网络
(
dee
p
neural
network
,
DNN
)
是目前最先进的图像识别算法
,
被广泛应用于人脸
识别
、
图像识别
、
文字识别等领域
.DNN
具有极高的计算复杂性
,
为解决这个问题
,
近年来涌出了大量可
以并行运算神经网络的硬件加速器
.
但是
,
DNN
中的全连接层有大量的权重参数
,
对加速器的带宽提出
了很高的要求
.
为了减轻加速器的带宽压力
,
一些
DNN
压缩算法被提出
.
然而基于
FPGA
和
ASIC
的
DNN
专用加速器
,
通常是通过牺牲硬件的灵活性获得更高的加速比和更低的能耗
,
很难实现稀疏神经
网络的加速
.
而另一类基于
CPU
,
GPU
的
CNN
加速方案虽然较为灵活
,
但是带来很高的能耗
.
细粒度数
据流体系结构打破了传统的控制流结构的限制
,
展示出了加速
DNN
的天然优势
,
它在提供高性能的运
算能力的同时也保持了一定的灵活性
.
为此
,
提出了一种在基于细粒度数据流体系结构的硬件加速器上
加速稀疏的
DNN
全连接层的方案
.
该方案相较于原有稠密的全连接层的计算减少了
2.44×
~
6.17×
的峰值带宽需求
.
此外细粒度数据流加速器在运行稀疏全连接层时的计算部件利用率远超过其他硬件
平台对稀疏全连接层的实现
,
平均比
CPU
,
GPU
和
mGPU
分别高了
43.15%
,
34.57%
和
44.24%.
关键词
细粒度数据流
;
稀疏神经网络
;
通用加速器
;
数据重用
;
高并行性
中图法分类号
TP387
深度神经网络近几年在飞速发展
,
它们在人脸
识别
、
智能监控
、
图像识别
、
文字识别等领域有着非
常出色的表现
.
特别是在
2012
年多伦多大学的
Alex
Krizhevsk
y
团队凭 借 他 们 提 出 的 深 度 神经 网络 分
类模型
AlexNet
[
1
]
,
获得了
Ima
g
eNet
挑战赛冠军
.
他们把分类 误 差记 录从
26%
降 到 了
15%.
自 此 之
后
,
大量公司和学者都投入了深度学习的研究中
.
目前常用的
DNN
算法都具有大量的权重
,
其
中全连接层
(
full
y
connected
la
y
ers
,
FC
la
y
ers
)
的
权重比例非常高
.
例如
,
AlexNet
有
61×10
6
的权重
参数
,
而这其中全连接层的参数数量有
59×10
6
.
VGG
-
16
[
2
]
有
138×10
6
的权重参数
,
其中全连接层
的参数数量有
124×10
6
.
为减少
DNN
算法的 权重
数量
,
文献
[
3
]
提出了一种使用剪枝
(
p
runin
g
)、
权值
量化与共享
(
wei
g
ht
q
uanti
-
zation
and
shared
)
和哈
夫曼编码
(
Huffman
codin
g
)
压缩权重的方法
.
如表
1
所示
,
经过剪枝后
AlexNet
和
VGG
-
16
在全连接层
的权重数量大量减少
.
Table
1
Com
p
ression
Statistics
for
FC
La
y
ers
in
AlexNet
and
VGG
-
16After
Prunin
g
表
1
剪枝后
AlexNet
与
VGG
-
16
中全连接层剩余的有效权
重比率
DNN
Model
La
y
er
#
Wei
g
hts
Wei
g
hts
Rate
?
%
FC6
38×10
6
9
AlexNet
FC7
17×10
6
9
FC8
4×10
6
25
FC6
103×10
6
4
VGG
-
16 FC7
17×10
6
4
FC8
4×10
6
23
虽然压缩
DNN
可以减少存储权重的空间
,
然
而目前的
DNN
加速器并不能很好支持这样的算法
执行
.
近年来涌现出的许多
DNN
硬件加速器
,
例如
DianNao
[
4
]
,
TPU
[
5
]
,
E
y
eriss
[
6
]
等
,
充分利用了
DNN
的并行性和数据重用的特征
,
提出了低功耗高性能
的
DNN
硬件加速方法
.
但是这些专用加速器只能运
行稠密的
DNN
,
甚至部分加速器不能支持
DNN
中
一些常见的层
,
如激活层和局部响应归一化层
.
只有
少量加速器
,
如
EIE
[
7
]
和
Cambricon
-
X
[
8
]
,
可以运行
稀疏的神经网络
.
但是同样地在这些不灵活的硬件
上很难实现一些新的算法
.
细粒度数据流加速器已经在科学计算领域
[
9
]
和
大数据领域
[
10
]
广泛应用
,
它在具有高性能的同时也
保持着很高的通用性
.
本文构建的一个细粒度数据
流加 速 器
(
fine
-
g
rained
dataflow
p
rocessin
g
units
,
FDPU
),
它可以加速
Stencil
、
FFT
和矩阵乘等高性
能应用
[
11
-
12
]
,
此外文献
[
13
]
还证 明了
DNN
在细 粒
度数据流结构上的实现可以获得非常好的效率和能
效比
.
如图
1
所示
,
FDPU
(
16tiles
,
8.192To
p
s
)
在运
行
AlexNet
各 层 时
,
相 较 于
GPU
(
NVIDIA
Tesla
K80
,
8.73TFLOPS
)
有
1.48×
~
26×
的加速
.
为了 更高效地在细粒度 数据流 加速器 上实现
DNN
的加速
,
我们提出了一种在细粒度数据流加速
器上加速稀疏的全连接层的方法
.
这种方法可以减
少加速器对内存数据的访问量
,
并且基本不增加硬
件设计
,
同时对加速器的性能影响也较小
.
本文的贡献主要有
3
个方面
:
1
)
提出了一种适合细粒度数据流加速器的
3911
向陶然等
:
基于细粒度数据流架构的稀疏神经网络全连接层加速
评论0