65

计算机架构顶会ISCA 2018唯一中国论文:清华大学提出AI计算芯片的存储优化新方法

 5 years ago
source link: https://www.jiqizhixin.com/articles/2018-06-12-8?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

ISCA 是计算机架构领域的顶会,今年的 ISCA 不久之前在洛杉矶落幕。本次大会共收到 378 篇投稿,收录 64 篇论文,而清华大学的一篇研究论文是今年大会中国唯一被收录的署名第一完成单位的论文。据了解,论文全部作者均为清华大学微纳电子系师生,清华大学微纳电子系尹首一副教授为本文通讯作者,涂锋斌为本文第一作者,论文合作者还包括清华大学微纳电子系魏少军教授、刘雷波教授和吴薇薇同学。机器之心对来自清华的这篇论文进行了编译介绍。

卷积神经网络 目前已经广泛应用于各种任务中,但因为其参数数量与中间储存的特征图数据,它很难部署到一般端应用中。尤其是当输入图像的分辨率增加,网络储存的中间特征图将大大增加,这无疑会增加对计算资源的需求。

目前很多 CNN 加速器 [7-11] 已经在为设计更高能效的 CNN 处理而做一些努力,但是芯片面积小则限制了片上缓存大小。一般片上缓存大小不超过 500KB,面积开销为 3 ∼ 16mm^2(归一化为 65nm)。当这些处理器计算 VGG 和 ResNet 等深度模型时,它们需要额外的片外存储访问。

Z7vuUvM.png!web

表 2:SRAM 与 eDRAM 的特点对比(32KB,在 65nm 技术结点中)。

嵌入式 DRAM(eDRAM)以其高密度著称,现代 CNN 加速器一般采用它提供大型的片上内存能力 [12-15]。如表 2 所示,eDRAM 的面积成本在 65nm 技术节点中是 SRAM 的 26%(用 Destiny [16] 模拟)。然而,由于 eDRAM 单元将数据存储为电容上的电荷,因此电荷可能会随着时间的推移而泄漏并造成数据错误。因此,eDRAM 需要定期刷新以维持数据正确性。刷新间隔通常等于最弱单元的保留时间([6] 中为 45μs)。我们使用 eDRAM 缓存在我们的评估平台上模拟 ResNet[4],并发现 eDRAM 的刷新能耗如图 1 所示在系统总能耗中占了很大的比重。尽管大型 eDRAM 缓存解决了过多的片外存取问题,但刷新能耗成为了我们不可忽视的新问题。

J7VVn2r.png!web

图 1:ResNet 在评估平台上的能耗细节。

我们发现如果 eDRAM 缓存中的数据生存时间短于 eDRAM 单元的保留时间,那么就不需要刷新。在本论文中,研究者们提出了一种基于保留时间的神经加速(RANA)框架,它通过优化了刷新的 eDRAM 增强 CNN 加速器的效果,并节省系统总能耗。该框架解决了两个问题,即导致片上内存能力限制的缓存存储问题和由 eDRAM 刷新产生的数据保留问题。RANA 包含三个级别的优化技术:

  • 训练阶段:提出了一种基于保留期的训练方法以提升 eDRAM 的容许保留时间,且不会造成准确度损失。训练时注入比特级的保留误差,因此能提高网络对保留失败的容忍度。更高的容错率可以导致更长的容忍保留时间,所以更多的刷新就可以去除了。

  • 调度阶段:考虑计算能耗、片上缓存存取能耗、刷新能耗和片外内存存取能耗来构建系统能耗模型。RANA调度网络就是基于这一模型的混合计算模式。每一个神经网络层级都会分配有最低能耗的计算模式。

  • 架构阶段:RANA 基于存储数据的寿命独立地禁用 eDRAM banks 的刷新,以节省更多的刷新能耗。研究者们使用了可编程的 eDRAM 控制器以允许上述细粒度的刷新控制。

本论文其余部分的主题如下,第二节初步介绍了 CNN、CNN 加速器以及 eDRAM。第三节构建了一个能耗分析的评估平台,并指出优化整个系统能耗的可能方面。第四节提出了 RANA 框架,包括三个级别的优化技术。第五节介绍了 RANA 在评估平台上的试验结果,而最后第六节则总结了该论文。

CNN 的卷积层取 NxHxL 的特征图作为输入,并有 M 个 3D 卷积核(NxKxK)。每个卷积核对输入特征图执行卷积运算(步幅为 S),生成 RxC 尺寸的输出特征图。

nmEnieI.png!web

图 2:卷积层图示。

图 3(a)展示了在很多硬件 CNN 实现中使用的典型 CNN 加速器架构。在 CNN 加速器中,有控制器、权重/输入/输出缓存以及计算核心。图 3(b)中展示了一种典型的计算模式,即卷积层运算如何在 CNN 加速器中执行。

MZ7bqmV.png!web

图 3:CNN 加速器的图示。

嵌入式 DRAM(eDRAM)的密度比 SRAM 高,被用于现代 CNN 加速器中来提供大规模芯片容量 [12-15]。图 4 展示了 eDRAM 的典型结构。每个 eDRAM 单元由一个存取晶体管和一个存储电容器构成。

MFbauq3.png!web

图 4:嵌入式 DRAM(eDRAM)的结构。

IV. RANA 框架

虽然 eDRAM 的高密度增大了芯片缓存容量,当网络规模过大的时候,缓存存储问题仍然可能存在。同时,由 eDRAM 导致的数据保留问题将产生很大的刷新能耗。在这一部分,研究者提出了基于保留期的神经加速(Retention-Aware Neural Acceleration,RANA)框架,以刷新优化的 eDRAM 来强化 CNN 加速器,从而节省系统总能耗。图 6 是整个框架的概览。RANA 取 CNN 加速器和目标 CNN 模型的参数作为输入,然后生成 3 阶段的工作流。前两个阶段处于编译阶段,用于为加速器生成配置。最后一个阶段处于执行阶段,其中加速器基于配置以优化的能耗执行。

QFNJ7bb.png!web

图 6:RANA 框架:优化被引入训练阶段、调度阶段和架构阶段中。

  • 阶段 1(训练):使用一种基于保留期的训练方法来训练目标 CNN 模型,以提高其对数据保留失败的容错能力。保留失败通过添加比特级的误差掩码而诸如到模型的每个层中。在给定的准确率限制下,该训练方法获得了最高的保留失败容错率。根据 eDRAM 的保留期分布,容错保留期是根据失败率获得的,其通常要长于 eDRAM 的典型保留期。

  • 阶段 2(调度):该系统能耗模型是基于计算能耗、片上缓存存取能耗、刷新能耗和片外内存存取能耗的考虑而建立的。对于每个 CNN 层,RANA 探索不同的计算模式,并基于数据生命期和缓存存储分析估计它们的能耗。RANA 分别分配最低能耗的计算模式到每个层上,最终在整个网络中得到混合型的计算模式。RANA 在这个阶段生成层级配置,其中包含容错保留期、每个层的计算模式以及在下一个阶段使用的 eDRAM 刷新 flag。

  • 阶段 3(架构):设计一个刷新优化的 eDRAM 控制器用于允许对每个缓存容器进行独立的控制,以进一步优化刷新能耗。在执行阶段,刷新区间被初始化为容错保留期。加速器一层一层地加载配置。控制逻辑和缓存数据映射适应于当前层的计算模式。eDRAM 控制器只对刷新 flag 为有效的容器优化刷新,以节省很多不必要的刷新操作。

本文提出的 RANA 框架可以应用于当前的 CNN 硬件架构,仅需要对内存控制逻辑单元进行小量的修改。这些架构的性能损失是可以忽略不计的,因为 RANA 并没有改变它们的核心计算部分,并且 eDRAM 的刷新开销在这个框架中已经被最小化。

V. 实验结果

图 15 展示了六种设计在总体系统能耗上的比较。所有的数字都被归一化为 S+ID 的系统能耗,以方便对比。

2iyae2v.png!web

图 15:系统总能耗。

图 16 中排除了芯片外内存存取,因为它受保留期的影响并不显著。如图 16 所示,刷新能量可以通过增加保留期而显著减少。

bEb6v2M.png!web

图 16:加速器在 ResNet 上的能耗对比:eD+ID vs. eD+OD vs. RANA(0),其中保留期(RT)从 45μs 增加到 1440μs。

JbMN7fu.png!web

图 17:VGG 上的层级系统能耗对比:eD+OD vs. RANA(0)。

图 18(a)展示了 RANA(E-5)的不同缓存容量的归一化系统能耗,在四个基准上测量得到。芯片外内存存取随缓存容量的增加而减少,因为有更多的数据可以缓存在芯片上。

Qf6R3iM.png!web

图 18:总体系统能耗:RANA(E-5)vs. RANA*(E5),其中缓存容量从 0.364MB 增加到了 11.632MB(1.454MB 的 0.25x~8x)。

研究者将 RANA 框架应用到当前最佳的基于 eDRAM 的 CNN 加速器 DaDianNao[12],以研究 RANA 向其它架构的可扩展性,如图 19 所示。

FvYBveQ.png!web

图 19:DaDianNao 的可扩展性分析。

论文:RANA: Towards Efficient Neural Acceleration with Refresh-Optimized Embedded DRAM

fyyeEn2.png!web

摘要: 卷积神经网络 (CNN)规模的持续增长需要越来越大的芯片存储。在很多 CNN 的加速器中,它们有限的片上存储容量造成了大量的芯片外存储的存取并导致了很高的系统能耗。嵌入式 DRAM(eDRAM)拥有高于 SRAM 的密度,可以用于提高芯片缓存容量,并减少芯片外存取。然而,eDRAM 需要周期性的刷新来维持数据保留,这会消耗大量能量。

如果数据在 eDRAM 中的生命期短于在 eDRAM 中的保留期,刷新是不必要的。基于该原则,我们提出了基于保留期的神经加速框架(RANA),并根据已优化刷新的 eDRAM 为 CNN 加速器节省系统总能耗。RANA 框架包含三个阶段的技术:基于保留期的训练方法、混合计算模式以及刷新优化的 eDRAM 控制器。在训练阶段,CNN 的误差适应性被用于训练过程以提高 eDRAM 的保留期容错能力。在调度阶段,RANA 为每个 CNN 层分配一种计算模式使其能耗最小。在架构阶段,使用一个刷新优化的 eDRAM 控制器来减少不必要的刷新操作。我们实现了一个评估平台来验证 RANA。由于 RANA 框架的帮助,99.7% 的 eDRAM 刷新操作都可以被删除,其对性能的影响是可以忽略不计的。相比较于传统的基于 SRAM 的 CNN 加速器,经 RANA 强化的基于 eDRAM 的 CNN 加速器在相同的区域成本下可以节省 41.7% 的芯片外内存存取以及 66.2% 的系统能耗。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK