Tink deeply 「Stay hungry. Stay foolish.」

ISCA2018论文分享-RANA神经加速器

2018-11-24

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

  • Conferences: ISCA, 2018
  • Authors: Fengbin Tu ; Weiwei Wu ; Shouyi Yin ; Leibo Liu ; Shaojun Wei
  • Site: https://ieeexplore.ieee.org/document/8416839
  • Keywords: Neural Network; Embedded DRAM (eDRAM); Refresh Optimization; Retention Time

Abstract

The growing size of convolutional neural networks (CNNs) requires large amounts of on-chip storage. In many CNN accelerators, their limited on-chip memory capacity causes massive off-chip memory access and leads to very high system energy consumption. Embedded DRAM (eDRAM), with higher density than SRAM, can be used to improve on-chip buffer capacity and reduce off-chip access. However, eDRAM requires periodic refresh to maintain data retention, which costs much energy consumption.

Refresh is unnecessary if the data’s lifetime in eDRAM is shorter than the eDRAM’s retention time. Based on this principle, we propose a Retention-Aware Neural Acceleration (RANA) framework for CNN accelerators to save total system energy consumption with refresh-optimized eDRAM. The RANA framework includes three levels of techniques: a retention-aware training method, a hybrid computation pattern and a refresh-optimized eDRAM controller. At the training level, CNN’s error resilience is exploited in training to improve eDRAM’s tolerable retention time. At the scheduling level, RANA assigns each CNN layer with a computation pattern that consumes the lowest energy. At the architecture level, a refresh-optimized eDRAM controller is proposed to alleviate unnecessary refresh operations. We implement an evaluation platform to verify RANA. Owing to the RANA framework, 99.7% eDRAM refresh operations can be removed with negligible performance and accuracy loss. Compared with the conventional SRAM-based CNN accelerator, an eDRAM-based CNN accelerator strengthened by RANA can save 41.7% off-chip memory access and 66.2% system energy consumption, with the same area cost.

论文方法

目前大多数CNN加速器存在以下几个问题:

  • 深度神经网络的规模日益增大,芯片存储容量不够,导致频繁的片外访问而带来性能的损失和功耗的增加
  • 采用SRAM来实现缓存无需刷新,但相比于eDRAM而言密度低,导致无法在面积固定下有更大的容量。
  • eDRAM密度高,但需要频繁刷新,且刷新的保留期是最坏的保留期,占很大一部分的系统能耗。

本论文使用eDRAM作为存储方案,并就刷新次数进行优化。在不影响模型准确度的情况下,极大的降低了加速器的功耗,提出了RANA的神经加速器框架。

本文的核心思想是:如果数据在eDRAM的生存时间(Data Lifetime)小于eDRAM的数据维持时间(Retention Time),那么系统将不需要对此数据进行刷新。由此得到两个优化方向:++降低数据生存时间++++增加eDRAM的数据维持时间++。更重要的是,论文还发现,在允许一定的数据错误率下并不会影响CNN神经网络模型的准确率。

RANA神经加速器的总体结构和流程如下:

image

如图所示,RANA框架采用三个层次的技术来优化能耗。

  1. 数据生存时间感知的训练方法
  2. 神经网络分层的混合计算模式
  3. 刷新优化的控制器

1. 训练层次的优化:数据生存时间感知的训练方法

通常eDRAM的刷新周期会设置为最差存储单元对应的数据维持时间,以保证数据存储不会出错。而实际eDRAM存储器各个存储单元的数据维持时间是不同的。分析典型 eDRAM 数据维持时间分布曲线,如下图所示:

image

对于一个32KB的eDRAM而言,数据维持时间最短是45us,对应的错误率是10^(-6)。而通过分析图,发现即使增加数据维持时间,错误率也不会显著提升。重要的是,我们可以利用DNN对数据的容错能力来重新训练网络使其能承受更高的错误率,以获得更长的(可容忍)数据维持时间。

为了验证这个想法的正确性,文章在神经网络的训练中插入了一个比特级的错误掩码(根据错误率每次进行随机)。经过反复的训练,发现最终的精度损失随错误率的提升而呈现出如下曲线:

image

上图说明,错误率提高到 10^(-5) 后网络精度仍没有损失,而此时对应的「可容忍」的数据维持时间提高到了 734 us。因此,更有可能减少刷新次数。

2. 调度层次优化:神经网络分层的混合计算模式

为了实现CNN卷积计算过程,eDRAM存储分为三个部分,input buffer、weight buffer、out buffer。

而一个典型的CNN计算过程如下图:

image

由于存储空间有限,一般将卷积的过程通过不断迭代来实现。如图虚线部分是一次eDRAM中的计算过程。文章发现:数据维持时间和存储空间与外层循环计算的顺序有关。

而随着神经网络不断的迭代计算,Bi(input buffer)、Bw(weight buffer)、Bo(out buffer)在不断变化,而这三者之间的大小关系影响着数据维持时间。如下图所示:

image

因此,根据芯片参数及 DNN 网络参数,可以对网络的每一层分配一个最优的计算模式。计算模式的探索过程被抽象为一个目标为系统能耗最小化的优化问题。具体调度方法如下图所示,调度结果会被编译成分层的配置信息(包括「可容忍」的数据维持时间、每层的计算模式及刷新标志),以用于执行过程的硬件配置。

image

3. 架构层次优化:刷新优化的 eDRAM 控制器

在传统的 eDRAM 控制器中,所有的 eDRAM 分区都以最保守的刷新周期进行刷新。本工作对 eDRAM 控制器稍加改造,加入一个可编程的时钟分频器、各 eDRAM 分区独立的刷新触发器和刷新标志位。控制器的配置信息来自于前两个技术的编译结果,具体将决定每个分区分别存储什么数据类型、是否需要刷新以及刷新周期。

image

实验结果

实验结果显示,RANA 框架可以消除 99.7% 的 eDRAM 刷新能耗开销,而性能和精度损失可以忽略不计。相比于传统的采用 SRAM 的 AI 计算芯片,使用 RANA 框架的基于 eDRAM 的计算芯片在面积开销相同的情况下可以减少 41.7% 的片外访存和 66.2% 的系统能耗,使 AI 计算系统的能量效率获得大幅提高。

image

感想

  • 文章从一个优化思路出发,根据CNN算法的过程,不断进行优化。分析的非常详细,并且有大量实验进行论证。
  • CNN算法允许一定的容错率,给eDRAM的设计带来了优化空间,是一个非常好的利用。

Comments

Content