论文

ISSCC 2017 Session 14 Slides整理(2/8)

论文二:DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN Processor for General-Purpose Deep Neural Networks

机构:KAIST(韩国科学技术院,电子工程-半导体系统实验室)

简述:

一款面向CNN和RNN的加速器。在架构上采用异构架构,即一个模块用于加速卷积,一个模块用于加速FC/RNN。在硬件设计中,采用混合方式的任务切割对大型卷积计算进行较优化的计算分配;在线自适应的定点计算,保证精度的前提下多快好省的完成计算任务;基于量化表的乘法器,降低乘法功耗,加速乘法计算。

主要内容:

(P2)核心特征:可配置性:1、 异构架构;2、混合负载划分方法。低功耗:1、动态自适应的定点计算;2、基于量化表的乘法器。

(P3-4)Why Deep Learning?表现优异、应用场景想象空间巨大。主要分为MLP/CNN/RNN。

(P5)Why both RNN & CNN?CNN强项在于特征提取和识别、RNN强项在于关联数据和生成信息。因此:CNN输出的特征->RNN进行感知,是一个合理而且可行的方式。(Previous Work: ICCSS2016, SOVC2016, ISCA2016)

(P6-7)DNPU:用于深度学习加速的专用SoC。和CPU、GPU通用GPP的对比如下。需要指出的是:深度学习本身就有“一对多”(adaptability)的特性(一类网络解决多个问题)

1

(P8-9)设计中面临的问题:在不同的计算层,其计算和存储的支配地位是不同的,如下图。在卷积层,计算是主要的瓶颈,而在全连接、编解码+LSTM(RNN)层,存储则成为了瓶颈。如果针对单一的网络特征进行设计,则难以满足全盘的要求。

2
Heterogeneous Characteristics
3
Design Challenges

Feature 1:高可配置性的异构架构

(P13)DNPU架构:由一个卷积加速模块+一个RNN-LSTM模块+RISC控制器组成系统。

3

(P14)卷积加速器:由4×4个计算核构成,每个计算核内为12×4的PE阵列,通过控制器进行指令驱动计算卷积。数据通过NoC传递。分布式Memory保证PE阵列、计算核的数据需求。通过Aggregation Core将数据进行集中处理(Pool/ReLU/…)并和RNN计算模块进行数据交互。

5
Distributed Memory-based Architecture for Convolution Processor

(P15)FC和RNN的加速硬件:全连接层和RNN本质运算都是矩阵x向量,因此硬件结构以及需求是一致的,采用同一种架构加速是合理的。

Feature 2:混合式的负载划分(任务切割)

(P16-19)卷积计算在有限的片上存储和计算资源下无法一次性完成计算,需要进行任务划分与切割。主要有图像划分、通道划分(RGB)、混合式划分。

6
Mixed Workload Division with Image/Channel Direction

(P20)以VGG-16网络为例,其在不同的层间在image和channel两个方向上分布非常不均匀,因此,单一的负载分类都很难达到好的效果,而mix方式效果相比是最优的。如下图。

Feature 3:动态自适应的定点计算

(P22)不同层的数据分布是不一样的,带来的影响就是采用浮点计算会更精确,但是代价更高;采用定点计算会消耗很少的资源,但是只能表征一部分数据。

9
Data Distribution in Each Layer

(P23)本文采用的是Layer-by-Layer的动态定点计算,其特征是每层小数点位置是不同的,层内则是固定的。

10
Format
11
Example

(P25-26)相比于以往离线处理数据精度,本文采用了在线的动态FL选取方式,可以动态适应当前图片的计算需求,减少WL的字节。从性能上来看,本文的方式对网络精确度影响最小。

12
On-line Adaptation-based FL Seletion
13
Performance Comparisons

Feature 4:基于量化表的乘法器

(P27-28)在整个计算中,每个kernel都有着50,176次乘法(image:224×224,kernel:3×3)。因此采用基于LUT的可重配置乘法器,可以加速计算、降低功耗。乘法器如下图

14
LUT-based Reconfigurable Multiplier

(P29)对于网络权重进行量化,分析可以看出,4bit位宽可以满足绝大多数的参数精度需求。

15
Weight Quantization

(P30-31)对于量化以后的权重,进行预计算,将不同输入和量化后的权重相乘结果存在一张量化表中(Q-Table)。在实际的计算中,根据量化的需求直接从表中读取计算结果。

16
Pre-Computation with Each Quantized Weight
17
Decode index to Load the Pre-Computed Result

(P32)采用量化表的乘法器,在带宽表现上非常优异。而同时,在计算中99%的乘法可以用Q-Table快速查找到。

18
Off-chip Memory Band Width

(P33)芯片参数:基于65nm工艺,峰值能效高达8.1TOPS/W(4bit 50MHz@0.77v)。

19.png

(P34)芯片性能数据:

20
Measurement Results
21
Dynamic Fixed-Point with On-Line Adaption

(P)性能对比

22
Comparison with Convolution Processors

23

(P39)总结:

1、高能效的CNN-RNN加速器

2、核心特征:支持CNN和RNN;混合方式的任务切割;在线自适应的定点计算;基于量化表的乘法器

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s