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

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

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

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

表 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 缓存解决了过多的片外存取问题,但刷新能耗成为了我们不可忽视的新问题。 

图 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 尺寸的输出特征图。

图 2:卷积层图示。

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

图 3:CNN 加速器的图示。

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

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

IV. RANA 框架

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

图 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 的系统能耗,以方便对比。

图 15:系统总能耗。

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

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

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

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

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

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

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

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

摘要:卷积神经网络(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% 的系统能耗。

理论论文ISCA 2018ISCA清华大学AI 芯片
1
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术
Convolutional neural network

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

逻辑技术
Logic

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

调度技术
Scheduling

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

准确率技术
Accuracy

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

推荐文章