如上一篇文章的第5.7节所述,为了支持各种数据流的数据传输模式,NoC是现代DNN加速器不可或缺的一部分,其设计必须考虑以下因素:(1)通过在存储和数据路径之间高效传输数据来支持高并行性的处理;(2) 利用数据重用来降低带宽需求并提高能源效率;以及(3)可以以合理的实施成本进行缩放。
图5.32显示了DNN加速器中常用的几种NoC设计。由于DNN的特性,即不能同时最大限度地利用所有数据类型的数据重用,因此通常对不同的数据类型混合使用这些noc。例如,DNN加速器可以使用1-D水平多播网络在同一行的pe之间重用相同的权值,使用1-D垂直多播网络在同一列的pe之间重用相同的输入激活。然后,这种设置将需要一个单播网络来收集来自每个PE的唯一输出激活。然而,这种组合意味着每个权重需要具有具有不同输入激活的重用量至少等于PE数组的宽度,并且具有不同权重的输入激活重用的数量至少等于PE数组的高度。如果不满足这些条件,PE阵列将不能充分利用,这将影响吞吐量和能源效率。
图5.32: 常见的NoC设计
图5.33展示了两种设计,其中包含许多现有DNN加速器中常用的NOC示例[135, 145, 156, 157, 180-182]。空间累积阵列架构(图5.33a)通常用于weight stationary数据流,它依赖于输出和输入通道将操作空间映射到PE阵列上,以利用并行性。同时,每个输入激活可以垂直地在PE数组中重用来自不同输出通道的权重,而来自同一行PE的partial sum可以在空间上进一步累积在一起,然后再写回global buffer。类似地,通常用于output stationary数据流的时间累积阵列架构(图5.33b)依赖于另一组数据维来实现高计算并行性。在这种情况下,每个输入激活仍然在同一列中的不同PE上垂直重用,而每个权重在同一行的PE上水平重用。
图5.33: 两种常见的DNN加速器设计:(a)空间累积阵列[135, 145, 156, 157]:输入激活(iacts)垂直方向重复使用,partial sum(psums)水平方向累积;(b)时间累加阵列[180-182]:输入激活(iacts)垂直方向重用,weight水平方向重用
当预选的数据维度由于DNN形状和大小的变化而减少时,例如,一层的输出通道数(M)小于PE阵列的高度,效率就会降低。具体来说,这些空间映射约束导致阵列利用率降低(即使用更少的PE)以及能源效率降低。此外,随着PE阵列的排布扩大,这些低效率会被放大,因为减小的尺寸更有可能无法填充阵列。例如,如图5.34所示,在MobileNet中执行depth-wise conv (DW)时,由于缺乏输入和输出通道,上述空间和时间积累数组将难以充分利用阵列183。相比之下,Eyeriss[101]由于其行row stationary数据流的灵活性,通过将独立的信道组映射到PE阵列的不同部分,可以实现较高的阵列利用率。
图5.34: MobileNet中深度(DW)卷积的不同架构的阵列利用率。彩色块是PE阵列中使用的部分。对于Eyeriss[101],不同的颜色表示运行不同通道组(G)的部件。有关变量的含义,请参阅下表。
跨不同层或模型的每种 DNN 数据类型的数据重用量各不相同,这对 NoC 设计提出了巨大的挑战。如图5.35所示,Broadcast网络可以利用最多的数据重用,但当数据重用较低时,其较低的源带宽会限制吞吐量。单播网络可以提供最多的源带宽,但会错过可用的数据重用机会。综合两方面的优点,一个连接任何数据源和任何目的地的全对全网络可以适应不同数量的数据重用和带宽需求。然而,其设计成本随着节点(如PE)的数量呈二次方增长,因此难以扩展到DNN加速器所需的并行量。
图5.35: 不同 NoC 实现的优缺点。
5.9.1 灵活的封层网状网络
为了解决这个问题,Eyeriss v2[161]提出了一种新的用于DNN加速器的NoC架构,称为分层网状网络(hierarchical mesh network, HM-NoC),如图5.36a所示。HM-NoC利用了all-to-all网络的优势,通过创建两级层次结构解决了可扩展性问题。all-to-all网络被限制在较低级别的cluster范围内。每个cluster内通常只有几十个PE,有效地降低了all-to-all网络的开销。在顶层,cluster与mesh network进一步连接。虽然这个例子显示的是21个网格,但实际设计中可以有更大的网格尺寸。在cluster级别上,使用mesh网络扩展体系结构比使用all-to-all网络要容易得多,而且实现成本是线性增长的,而不是二次增长。
图5.36: (a) High-level structure of the hierarchical mesh network (HM-NoC), and its different operating modes; (b) high bandwidth mode; (c) high reuse mode; (d) grouped-multicast mode; and (e) interleaved-multicast mode.在每种模式下,彩色箭头显示路由路径;不同的颜色表示唯一数据
图5.37显示了HM-NoC如何针对不同类型的层调整不同模式的几个示例用例。为简单起见,仅显示具有2个PE cluster的简化情况,每个cluster中有2个PE,并且省略了NoC以获取partial sum。相同的原则适用于所有数据类型和更大规模的NoC。
- 传统的CONV层(图5.37a):在普通的CONV层中,输入激活和权重都有大量数据重用。为了使所有四个PE在最低带宽要求下保持忙碌,我们需要两个输入激活和来自数据源的两个权重(忽略来自RF的重用)。在这种情况下,用于输入激活或权重的HM-NoC必须配置为grouped-multicast mode,,而另一个配置为interleaved-multicast mode。
- 深度(DW)CONV层(图5.37b):对于DW CONV层,由于缺乏输出通道,输入激活几乎无法重用。因此只能通过向所有PE广播权重,同时为每个PE获取唯一的输入激活来利用权重的重用。
- FC 层(图5.37c):与DW CONV层相反,FC层通常很少重用权重,特别是batch size有限时。在这种情况下,输入激活和权重NoC的模式与之前的模式进行了交换:权重现在单播到PE,而输入激活则广播到所有PE。
虽然传统的网状NoC实现通常因为需要动态路由数据而带来较高的面积和功耗开销,但HM-NoC的情况并非如此,因为它不需要在运行时路由。相反,所有活动路由都是在配置时根据使用的特定数据传输模式确定的。因此不需要流量控制,并且路由器只是用于实现成本最低的电路交换路由的复用器。
图5.37: 针对不同类型的DNN层以不同模式配置的权重和输入激活分层网格网络的示例:(a)CONV层; (b)深度(DW) CONV层; (c) FC层。绿色箭头和蓝色箭头分别表示权重和输入激活NoC中的路由路径。
图5.38: 基于分层网状网络构建的DNN加速器架构
图5.38展示了基于分层网状网络构建的DNN加速器示例。路由器cluster现在连接在一个二维网格中。全局缓存(global buffer, GLB)被存储并分布到每个source cluster中,PEs被分组到目的cluster中,而不是单个阵列。
阶段总结
包括前两篇文章,都介绍了设计DNN加速器专用硬件的动机、主要目标和关键设计方案。DNN计算中MAC操作排序的巨大自由度、高效数据移动的需求以及灵活处理多种DNN工作负载的需求,导致了巨大的设计空间。本章侧重于从性能和能效的角度来理解设计空间,特别强调数据重用以及如何在空间和时间上利用多级存储层次。这个主题的核心是数据流的概念,如何在各种现有的设计中体现它们,以及如何使用循环嵌套精确地表达它们。还提出了使用显式解耦数据编排(EDDO)高效缓冲和灵活的NoC设计相关的想法。找到特定工作负载形状到给定DNN加速器的最佳映射的过程将在下一章中探索。
参考文献:
[135] Nvidia, NVDLA Open Source Project, 2017. NVIDIA Deep Learning Accelerator 69, 76, 92, 94, 96, 97, 113, 114
[145] N. P. Jouppi, C. Young, N. Patil, D. Patterson, G. Agrawal, R. Bajwa, S. Bates, S. Bhatia, N. Boden, A. Borchers et al., In-datacenter performance analysis of a tensor processing unit, in International Symposium on Computer Architecture (ISCA), 2017. 92, 94, 113, 114
[156] Z. Du, R. Fasthuber, T. Chen, P. Ienne, L. Li, T. Luo, X. Feng, Y. Chen, and O. Temam, ShiDianNao: Shifting vision processing closer to the sensor, in International Symposium on Computer Architecture (ISCA), 2015. DOI: 10.1145/2749469.2750389. 92, 95, 96, 97, 113, 114
[157] S. Gupta, A. Agrawal, K. Gopalakrishnan, and P. Narayanan, Deep learning with limited numerical precision, in International Conference on Machine Learning (ICML), 2015. 92, 95, 113, 114, 159
[161] Y.-H. Chen, T.-J. Yang, J. Emer, and V. Sze, Eyeriss v2: A flexible accelerator for emerging deep neural networks on mobile devices, IEEE Journal on Emerging and Selected Topics in Circuits and Systems ( JETCAS), 2019. DOI: 10.1109/jetcas.2019.2910232. 92, 116, 221
[180] B. Moons, R. Uytterhoeven, W. Dehaene, and M. Verhelst, Envision: A 0.26-to-10TOPS/W subword-parallel dynamic-voltage-accuracy-frequency-scalable convolutional neural network processor in 28 nm FDSOI, in International Solid-State Circuits Conference (ISSCC), pages 246–247, 2017. DOI: 10.1109/isscc.2017.7870353. 113, 114, 161
[181] S. Yin, P. Ouyang, S. Tang, F. Tu, X. Li, L. Liu, and S. Wei, A 1.06-to-5.09 TOPS/W reconfigurable hybrid-neural-network processor for deep learning applications, in Symposium on VLSI Circuits, pages C26–C27, IEEE, 2017. DOI: 10.23919/vlsic.2017.8008534.
[182] J. Lee, C. Kim, S. Kang, D. Shin, S. Kim, and H. Yoo, UNPU: A 50.6TOPS/W unified deep neural network accelerator with 1b-to-16b fully-variable weight bit-precision, in International Solid-State Circuits Conference (ISSCC), pages 218–220, 2018. DOI: 10.1109/isscc.2018.8310262. 113, 114
[161] Y.-H. Chen, T.-J. Yang, J. Emer, and V. Sze, Eyeriss v2: A flexible accelerator for emerging deep neural networks on mobile devices, IEEE Journal on Emerging and Selected Topics in Circuits and Systems ( JETCAS), 2019. DOI: 10.1109/jetcas.2019.2910232. 92,116, 221
作者:Damon
文章来源:知乎
推荐阅读
雨天一样强 | 3D目标检测如何解决雨雪等恶劣天气的影响?
骨干网络ResNet/Res2Net/DarkNet/Swin-T怎么选?
DNN 加速器设计——NPU数据流优化
AI加速器 Kernel Computation 计算优化方式
更多嵌入式AI干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。