论文

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

论文七:A 288μW Programmable Deep-Learning Processor with 270KB On-Chip Weight Storage Using Non-Uniform Memory Hierarchy for Mobile Intelligence

机构:Michigan,CubeWorks(密歇根大学,CubeWorks公司)

简述:

一款面向IoT的低功耗深度学习加速器,在低功耗、高效率下实现全连接的DNN。芯片由主控Cortex-M0、加速阵列DLA(由四个PE组成)、AHB Lite总线等构成。其中PE支持多种位宽的计算,并且有L1~L4不同速度、能耗的层次化存储。通过对全连接矩阵x向量的计算流程优化,最终可以在0.65V 3.9MHz下获得374GOPS/W的能效表现及288uW的能耗指标。总体计算速度在几个ms的级别,可以应对IoT的实时性要求。

主要内容:

(P2-4)当前的AI方案:云端结算,终端呈现。这种方式由于通信代价会引起较大的延迟和能耗。因此,层次化的DNN开始成为新的解决方案:即IoT终端(实时性高,任务简单的小型DNN,<20mW)-手持终端(实时性高,任务相对复杂、功能更多的中型DNN,<WiFi 300mW)-云端(复杂任务下的大规模DNN,能耗基本不受太大限制)。层次化的目的:节约能源,降低延迟。

(P5)IoT DLA(Deep Learning Accelerator)的愿景和实操:IoT的结点将具有移动感知能力,同时可以运行简单的语音/图像检测和离线学习能力,可以完成部分DSP的计算工作。当前的技术采用了高并行的PE以及非标准的memory结构NUMA,定制的低漏电流SRAM,同时对数据位宽采用精度可配的管理方式。

1.png
Deep Learning Accelerator(DLA) for IoT

(P6-7)和传统的计算相比,深度学习的访存次数大大增加,计算的不确定性也十分明显,传统的层次化存储结构(寄存器-Cache-DRAM-HDD/SSD)已经难以满足需求(Cache作用不明显,访存不规则但是服从统计学分布规律)。因此,采用非一致的存储架构、提高存储的bit密度,以及使用长字节表达+可变精度的数据格式,可以有效提升深度学习的访存、能效表现。

(P8)采用的多层存储结构:采用非一致性的NUMA,建立确定性访存机制,提出数据分配机制以及数据的连续地址存放。

2.png
Proposed Memory Architecture

(P9)DLA的设计:每个PE均具有共计67.5kB的4层存储结构,通过AHB与主控芯片相连,通过MMIO寄存器进行数据交互。

3.png
Proposed Deep Learning Accelerator(DLA)

(P11-17)DLA的PE设计:整体工作流程:

  1. instruction buffer用于接受由主控核(Cortex-M0)发出的指令,经由WR/RD进行选择,将192b的指令输出到中心controller;
  2. 中心controller(CTR)将状态寄存器Status Reg置位“Running”;
  3. 访存单元(Mem)通过中心controller和PE进行数据交互,CTR定义MemAU数据访存模式(序列Seq/随机Ran),PE通过CTR和MemAU进行访存操作;同时MemAU采用了power gating和signal gating技术;对于外存的访问请求,也通过MemAU处理,优先级为:Cortex-M0>外部PE>所在PE;
  4. CTR向Data Buffer发起数据请求,完成:解压MemAU输入的96b数据,打包发出输出的96b数据,并采用临近数据存储方式进行操作;
  5. CTR对ALU发起数据,ALU通过IO口从Data Buffer中读取数据,可以进行如下计算:4个乘法计算(8bit)、4个乘法计算(16bit)、10个加法器、6个移位器;基于查找表的多项式差值计算单元,用于激活函数的计算;
  6. 计算任务完成后,Cortex-M0发出信号,CTR将Status Reg置位Done。
4.png
Proposed DLA Processing Element(PE)

(P18)有信号开关的SRAM结构:通过SIGNAL_GATING[3:0]DATA_DATING[3:0]进行数据的存储层级选择。

5.png
SRAM, Signal Gating Circuits

(P19)SRAM的休眠模式:由于深度学习的计算特征:1、存储访问一般是序列、连续的;2、同一时刻只有部分bank是处于激活状态。因此,通过PG,可以将大部分bank至于休眠状态,休眠状态下漏电流可以减少90%以上。

6.png
SRAM Dynamic Drowsy Mode

(P21)全连接层的运算(Fully-Connected Layer, FCL):分解为矩阵x向量+激活函数。核心是Matrix-Vector Multiplication(MVM)。

矩阵x向量的优化:1、矩阵x向量,是通过向量相乘完成的,即矩阵的每一行都和一个相同的向量做内积,而由于数据的位宽一般不大,本文通过拼接和迭代加和的方式进行内积计算:

此幻灯片需要JavaScript支持。

(P31)基于以上的MVM计算方式,TO是访问频率最高的数据->存在L1 Mem;权重w重用度低->存在L4 Mem。

(P33-37)FCL计算的仿真结果:降低42%的能耗,提升2%的精确度。

18.png
Simulation Results (FCL)

(P38)40nm LP工艺下Die面积7.1mm^2:

19.png
Die Photo

(P39)对于不同层Memory的访存功耗对比:

20.png
Measurement Results for FCL

(P40-41)芯片性能表现及对比:在0.65V 3.9MHz下,运行FCL平均能耗为288uW,能效为374GOPS/W,同时支持6~31bit不同位宽的计算。

21
Measurement Results for FCL
22
Summary @0.65V & 3.9MHz

(P43)总结:一款面向IoT的低功耗深度学习加速器

1、在低功耗、高效率下实现DNN

2、延迟在几个ms的级别,可以应对IoT的实时性要求

发表评论

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