原标题:【谢源评体系结构顶会 MICRO 2016】神经网络加速器仍是热点,但图计算加速器夺最佳论文(下载)
:COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面。
新智元为COO和执行总编提供最高超百万的年薪激励;为员工提供最完整的培训体系、高于业界平均水平的工资和金。
【新智元导读】计算机体系结构会议 MICRO 2016 日前召开,。我们整理了 MICRO 2016 与神经网络相关的 6 篇论文,并邀美国大学圣塔芭芭拉分校谢源教授课题组神经网络架构研究团队的博士王超,以及博士生李双辰、刘浏、朱茂华、谷芃等进行点评。但与 ISCA 2016 不同,这次针对图计算的加速器脱颖而出成为最佳论文,其蕴涵的重要意义和发展趋势,值得思考。【进入新智元号,在对线 篇(含 MICRO 2016 最佳)论文】
历史上,MICRO 长期被美国顶尖研究机构所占领,例如开会地点,仅有 10 次在美国之外的城市召开,本次是 MICRO 第二次在亚洲召开(第一次是 1999 年在以色列),吸引了大批来自包括中国在内的东亚国家研究人员参与。本届会议共收到了 283 篇论文,最终录用了 61 篇,接收率为 21.6%。
下图是一个对 MICRO 2016 的 Program 的 Word Cloud,我们可以有个直观的印象。方逸华有孩子吗其中,神经网络、存储、加速器是重点。
图3是对 MICRO 2016论文的统计,可以看出,关于存储方向的数量超过了 105 篇(35%)。其中,对于新型存储相关的有近 40 篇(约15%),可见对其的重视程度。
再看一下对 ISCA-25 年发展趋势回顾(图4),大家对处理器结构的研究热度自 2004 年之后就有明显的降温。与此同时,对存储,特别是近年来对新型存储结构(如 ReRAM、STT-RAM 等非易失性存储器)以及存储工艺(如 HBM 和 3DIC 等)的关注与日俱增。
今年的 MICRO 会议中,就有采用 STT-RAM 来进行 GPU 存储优化的论文(参见论文OSCAR)以及采用 3D 技术进行存储功耗优化的论文(参见论文 Snatch)。
从论文作者的地域分布来看,今年 MICRO 来自中国的作者数量有了较为大幅的增长。向MICRO 2016 的中国作者人数超过 85 人,排在美国和韩国之后,位列第三。而从最终录用论文的作者统计来看,中国仅低于美国处于第二位,说明来自中国的论文数量大幅上升的前提下,质量也保持在比较高的水平。
新智元整理了 ISCA 2016 神经网络相关论文,并邀美国大学圣塔芭芭拉分校谢源教授课题组的神经网络架构研究团队的王超博士,以及博士生李双辰、刘浏、朱茂华、谷芃等对相关论文进行点评。
《NEUTRAMS:神经网络在考虑类脑计算芯片硬件下的变换和协同设计》论文由大学张悠慧教授课题组和大学圣巴巴拉分校谢源教授课题组合作完成。该论文以连接复杂的神经网络算法和高效的类脑计算芯片为目标。类脑计算芯片,特别是基于 ReRAM 的芯片,可以融合数据存储与计算,在较低的功耗下还能达到很高的计算性能。然而这类芯片及硬件设计,受到为成熟的 ReRAM 工艺影响,存在许多:比如计算与存储精度受限,ReRAM 阵列规模受限(即计算点积向量程度受限)等问题。该论文讲高层次描述的神经网络加以转换并重新训练,使得目标神经网络可以完好的映射到这些硬件设计上,并且将硬件带来的影响降到最小。为了做到这一点,该论文采用神经网络模型转换和硬件映射这两个步骤。在模型转过程中,考虑到 ReRAM 阵列规模的,将原神经网络稀疏化后划分成规模适应于ReRAM阵列的子网络。同时,对数据进行了量化来适应硬件精度受限的问题。最后,增加新的网络层并重新训练,来减小为硬件进行的网络裁剪得来的识别率损失。硬件映射过程则采用了 Kernighan-Lin 策略。该工作分别针对以计算 SNN 的加速器结构的 Tianji 芯片和计算 CNN 的内存中计算架构(processing-in-memory)的 PRIME 硬件结构,进行了实验和探索。
【点评】基于新型器件的神经网络加速器,因为极高的能量效率,非常吸引研究者。但是由于工艺问题,这些新型硬件带来的约束条件阻碍了其得以大规模应用。研究者们从硬件设计到体系结构设计,都提出了一些解决该问题的方法。这篇文章站的更高,从软件的角度去攻克这一问题,从而也起到了更有效的效果。
《Cambricon-X:一种针对稀疏神经网络的加速器》的作者是中科院计算所霁、陈天石研究员课题组。神经网络剪枝技术可以在预测精度不变的情况下消除网络中大部分突触权值数据,减少冗余计算量。目前主流深度学习加速器(如 DianNao、DaDianNao)缺乏对处理剪枝后的稀疏网络提供有效支持——需要用零填充剪去的权值,再用普通方式进行计算,故无法从剪枝中获益。
这篇论文设计了一种能有效处理稀疏网络的深度学习加速器——Cambricon-X,该加速器在将神经元送入计算单元处理前对非零神经元逐个标记,虑除零值神经元,计算单元内部的权值 buffer 只存放非零神经元对应的权值数据,从而消除多余计算和权值存储。在通用性方面,只需跳过神经元标记、虑除步骤即可按普通计算方法对非稀疏神经网络进行处理,通用性较强。与此同时,配套的编程框架中提供了调用加速器的高级语言编程接口和用来描述加速器行为的底层指令,设计者可以在 Caffe 中无缝使用加速器,易用性较好。
【点评】Cambricon-X是首个稀疏神经网络加速器,该项工作是对该团队研究的系列工作DianNao、DaDianNao等的拓展和完善。当前使用剪枝技术消除深度学习中的冗余计算十分流行,针对DianNao等深度学习加速器在处理剪枝后稀疏网络时体现出的乏力,Cambricon-X针对稀疏神经网络的计算模式和访存特性,设计专门的神经元Index引擎来选择需要计算的神经元,进而在有限的带宽要求下实现高性能和高能效的神经网络加速。该加速器通过加入简单逻辑模块使过去常用深度学习加速器能够与剪枝技术相融合,在有效处理稀疏网络的同时不失处理一般网络的通用性,并且两种处理模式的性能和能耗均大幅优于 CPU、GPU、DianNao 等现有技术。
《从高层次深度神经网络模型到FPGAs》来自佐治亚理工Hadi Esmaeilzadeh教授的团队。文章认为FPGA由于其可编程和低功耗等特性在加速深度神经网络(DNN)中扮演重要角色,但在FPGA上实现高性能与低能耗并非易事,尤其在深度神经网络超大内存使用和FPGA有限片上内存的情况下。本文提出并设计可以根据高层次神经网络模型自动生成可综合FPGA加速器的框架(framework)DnnWeaver。该框架使用DNN专用指令集使其可采用Berkeley Caffe等价的编程接口。同时开发针对FPGA的底层优化模板设计,并根据设计需求扩展成DNN加速器。
【点评】文章所提出框架可加快深度神经网络在FPGA上的实现并更易尝试不同的优化设计。从高层综合(HLS)相比DnnWeaver利用底层优化模板的设计方法,可以得到更优的加速器设计。与此同时,DNN加速器的重点转移到优化模板的设计上。FPGA厂商或第三方如能开发优化的底层实现库和编译器等技术,使用FPGA加速神级网络将会有更大的突破。
这篇论文来自于英伟达NVIDIA,当下比较流行的深度学习框架诸如 Caffe、Torch、Theano 和 TensorFlow 均需要用户非常注意地控制 GPU 板载显存(VDRAM)的使用量。这个的存在使得用户不得不转投使用显存需求少的神经网络模型或者使用多块GPU并行处理网络训练。为了能够更充分地利用有限的 GPU 板载显存进行深度神经网络训练,本文提出了一个针对神经网络应用的运行时内存管理器(称为“虚拟化DNN”/vDNN),使得深度神经网络训练时可以被同时映射到 CPU 内存和 GPU 板载显存上,并最大限度地训练速度。部署 vDNN 之后,AlexNet GPU内存平均使用率降低了 89%,OverFeat 降低了91%,GoogLeNet 降低了95%。同时,对于一些原本不能在单块 GPU 上训练的网络(例如 VGG-16 在 batch size 为 256 时需要 28GB 的存储空间)也可以在搭载 12GB 板载显存的 Titan X GPU上完成训练,照比无限大板载显存的 GPU 模型仅损失 18% 的训练速度。
【点评】本文的亮点在于对 DNN 训练和预测(inference)在存储空间的需求上做了非常深入的分析。DNN预测过程不需要保存各层神经元的输出结果,但由于训练时各层的结果需要在反向中使用,必须保存直到该次迭代结束。作者提出的内存管理器可以将暂时不需要被使用的输出结果转移到CPU内存当中,待到需要时再将其复制到GPU板载显存当中。由于反向各层顺序正好是正向的倒转,因此可以利用这一特性对数据传输进行优化。
《Stripes:比特串行的深度神经网络》由大学和英属哥伦比亚大学的研究小组合作完成。由于深度神经网络不同层级和不同架构对数值精度的需求存在差异,本文提出了名为Stripes(STR)的硬件加速器,其执行深度神经网络应用的时间与其使用的数值精度的大小成正比。在不损失应用精度的情况下,STR 依赖于比特串行计算单元,并充分利了用深度神经网络中的并行性来提高计算性能和降低能耗。除此以外,STR 还提供了一定的灵活度,使得应用可在运行时进行精度、性能和能耗三方面的协调。多个基于图像分类的深度神经网络应用显示STR比DaDianNao在不损失精度的情况下有1.92x的性能提升和57%的能效提升,代价是 32% 的面积开销。
【点评】本文的研究基于中科院计算所霁和陈天石研究员的 DaDianNao工作,主要创新在于将神经功能单元(Neural Functional Units)中的 16 比特的并行神经元输入,变为了16比特的串行输入,进而在不损失或损失很小精度(~1%)的情况下,将16比特简化为 p 比特(可逐层调整),获得 16/p 的理论加速性能(实验结果近似理论加速性能)。此外由于计算比特数的减少,以及串行带来的对神经权重缓存访问次数的减少,其能耗也有显著降低。本文提出的架构可应用于计算能量受限的平台,并且应用可以耐受一定的精度损失,从而用可以接受的精度损失换取能耗的降低和计算性能的提升。
《层与层互融合的卷积神经网络加速器》一文,来自纽约州立大学石溪分校(Stony Brook University)。该论文发现,在计算神经网络时,由于是逐层计算,在计算每层的前后都要读写特征图片(feature map)。这占据了近 50% 的片外存储(off-chip memory)访问。这个观察明确了研究层间复用的动机:减少层间特征图片的片外存储访问,从而提高性能,减小带宽要求,并减小能耗。为了利用层间数据复用,该论文提出了利用多层滑动窗口(pyramid-shaped multi-layer sliding window)对输入特征图片进行处理,从而直接得到几层之后的结果。该论文还提出了一个优化框架,探索如如果划分融合层挤层内划分,选择重新计算活暂存等。经过FPGA上进行验证后,该论文展示了可减小高达 95% 的片外存储访问的结果。
【点评】该论文隶属于探究神经网络计算中数据复用类的工作,在现有工作(如Eyeriss, ShiNianNao)已几乎将单层内数据复用做到极致的情况下,另辟蹊径,研究并利用了层与层之间的数据复用。
【摘要】Eyeriss 是针对深度卷积神经网络设计的低功耗硬件加速器。它能够支持目前主流的卷积神经网络模型,包括对 filter、weight 和 channels 的不同配置。Eyeriss的原型测试芯片集成了168个处理单元 processing elements (PE),单元之间通过可重构片上网络来进行通信,并采用数据重用和压缩技术来降低数据传输的代价,从而减少能耗。从编程模型来看,Eyeriss芯片可以支持Caffe编程框架,在AlexNet测试集下,Eyeriss 能够实现对上千张图片的实时分类,其帧率为35 fps,功耗为 278 mW,比对应 mobile GPUs的功耗要节约10 倍以上。
从以上的分析不难看出,神经网络加速器和芯片设计仍旧是体系结构领域目前的研究热点。值得一提的是,除了神经网络的 Session 之外,MICRO 2016 有两个关注加速器(Accelerators)的 Session,共有 7 篇论文,说明大家对特定领域(不限于神经网络)的加速器设计保持着持续关注。
有意思的是,本年度获得 MICRO 最佳论文并不是与神经网络有关的论文,而是 “Graphicionado: A High-Performance and Energy-Efficient Accelerator for Graph Analytics”。该论文由普林斯顿大学、大学伯克利分校和 Intel 合作完成。论文针对目前的图计算模型,设计了一个硬件加速和优化的框架,并采用了多种优化手段来降低访存和数据传输的带宽。针对图计算的加速器能够从众多神经网络加速器的工作中脱颖而出,并一举获得 MICRO 最佳论文,其背后蕴涵的重要意义和发展趋势,值得大家思考。
:COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面。
新智元为COO和执行总编提供最高超百万的年薪激励;为员工提供最完整的培训体系、高于业界平均水平的工资和金。