- Eyeriss v2: A Flexible Accelerator for Emerging Deep Neural Networks on Mobile Devices
| 作者: |
Yu-Hsin Chen; Vivienne Sze_ |
| 机构: |
MIT |
| Conf/Jour: |
IEEE Journal on Emerging and Selected Topics in Circuits and Systems |
| 时间: |
2019 |
目录
Basis
Eyerissv1回顾:
一个memory和core分离的结构,通过总线进行通信。核内包含一个L1 memory(global buffer),整体控制模块(Top-level Control),数据的align(RLC),和核心运算矩阵:一个12x14的PE array。是一个典型的具有一定配置性的ASIC加速器。这样的PE array是一个扁平化的阵列,主要通过横纵向的控制流和数据流传递进行控制和数据交换,因此是一个简化的方案,每一个PE所具有的的存储和功能都比较有限,如果内部Spad空间不足,就需要访问外边的Global Buffer,这样的延迟就会比较大,对NOC的带宽也有较高要求。
Background
以往的加速器设计对于新兴的Compact、sparse的网络结构效果不佳,因为DNN层中的任何数据维都可以减小(因此输入和输出数据重用机会变小);
1)对于compact网络:Array和PE的利用率低,比如某些用于并行维度甚至小于array的高度。
2)对于sparse网络:难点包括不规则的数据存取、workload不平衡、PE利用率低。
Method
整体架构:
其中GLB和PE组成cluster,16 PE clusters +16 GLB clusters组成整体8*2的阵列。
片外数据或GLB中的数据先到达router,然后可以unicast给local PE,multicast给同一行或一列的PE cluster,或广播给所有PE cluster。
运行方式:每层网络,输入2134bit指令进行配置。
分层网格NoC设计
- motivation
传统的NoC方式:
对于一种常见的Multicast权重和输入的设计,1个权重对应的不同输入来自于H/W,1个input对应的不同权重来自于Cout,kx和ky(kx ky是很小的),而其能挖掘到的并行度需要大于整个阵列的长或宽,否则,阵列就不能被充分利用。尤其是在紧凑网络中的depthwise层,输出通道是1个。
广播网络可以利用最多的数据重用性,但是当数据重用性较低时,它的低源带宽会限制吞吐量。 单播网络可以提供最大的源带宽,但会丢失可用的数据重用机会。 从两全其美的优势出发,将任何数据源连接到任何目的地的全方位网络(all to all)可以适应不断变化的数据重用和带宽需求。 但是,其设计成本会随着节点数量(例如PE)的增加而成倍增加,因此很难扩展到DNN加速器所需的并行度。
- 分层网格NoC:
只有一个cluster内部的12个pe是all to all的,顶层也是网格状连接的(mesh),但是这样成本就由二次增加转变为了线性增加。对于传统卷积,深度卷积和全连接层分别会被配置为:
SIMD支持的稀疏 (TODO)