Intro: 对NoC-based的DNN加速器综述
Conf/Jour: NOCS 2019
Author: Kun-Chih (Jimmy) Chen
Affiliation: National Sun Yat-sen University
Summary
现有DNN加速平台包括CPU,GPU,ASIC和FPGA。然而,这些平台具有性能低下(即CPU和GPU),功耗大(即CPU,GPU,ASIC和FPGA)或运行时的计算灵活性低(即FPGA和ASIC)的缺点。在本文中,我们建议将基于NoC的DNN平台作为一种新的加速器设计范例。
在基于NoC的设计中,通过处理元件执行神经元操作后,获得的结果将通过数据包传播到下一个PE。 重复此过程,直到获得最终结果。 这样,无需考虑特定的数据流即可有效地在DNN加速器中运行目标DNN模型。 重要的一点是,PE之间的灵活通信可以使用相同的体系结构处理具有不同数据流的不同DNN模型。在文献中已经研究了设计基于NoC的DNN加速器的某些方面。
本文方法: 为了在基于NoC的平台上执行DNN模型,该模型首先被拉平(flatten)到类ANN网络中。然后将其聚类,并使用随机映射将每个组映射到PE。 XY路由用于在网络中路由数据包。与传统的DNN设计相比,在三种不同的DNN模型下,基于NoC的设计中的内存访问数量减少了88%,最高减少到99%LeNet,MobileNet和VGG-16模型的实验结果表明,基于NoC的DNN加速器的好处在于减少了对片内存储器的访问,并提高了运行时的计算灵活性。
Intro
基于ASIC的加速器缺乏灵活性,设计cost大,往往是针对一个网络去设计的。FPGA based加速如果被configure for一种特殊的DNN模型,依然缺乏灵活性。为了提高设计的灵活性,减少互联的复杂性,引入NoC。在NoC中,所有的resources是被PE共享的,memory可以在所有的PE之间分布。
why NoC?
ASIC-based DNN加速器不够灵活,不能重配置。
一个noc based 的加速器实现包括:
- Mapping & clustering 算法:cluster算法决定了神经元如何分组。 相关文献包括NeuNoc,[42] Reconfigurable communication fabric for efficient implementation of neural network
- 拓扑:eyeriss v2,[42], [11] Clos 拓扑
- 路由算法和微结构:微结构方面:一些工作不使用传统的5端口虫孔路由。基于circuit-switching,path在设计时候就固定[7] (eyeriss)
- Memory bandwidth: 数据从memory load过来和存回memory的过程。
实现
mapping方法:将CNN flatten成ANN→ group neurons → map 到硬件
具体实现方法:
模仿UNPU的设计:一个DNN加速器(用了UNPU的latency model.)
we have described its computing behavior in SystemC.
For the NoC-based DNN design we utilized the CNN-Noxim simulator
mesh 拓扑,xy路由,随机映射。
网络: Lenet MobileNet VGG16
结果:number of memory access
在传统的加速器中,PE之间的数据传输是通过memory实现的。
假设:我们假设平台上的资源足以将给定模型的所有参数一次从片外存储器传输到NoC平台。 这一假设与最近的基于NoC的体系结构(例如Intel的Skylake [52])保持一致,这些体系结构减小了全局存储的大小,而增加了本地存储的大小。
off-chip数据读取的比较:
相比较的文章[47]: UNPU: An Energy-Efficient Deep Neural Network Accelerator With Fully Variable Weight Bit Precision
结果:Performance
基本的映射策略:
- 假设每个节点都存下了权重数据。
- 每个节点的算力一致:也就是这里的group size(表示了一个节点能进行多少的neuron computations);给每个节点分neuron(按照最大利用资源分配)。当换层的时候就换一个节点去映射。