MICRO(The 49th Annual IEEE/ACM International Symposium on Microarchitecture)是计算机体系结构领域的顶级会议,重点关注处理器体系结构的设计等内容。自 1968 年创办以来,迄今已经举办了 49 届,今年的 MICRO 于 10 月 15 日至 19 日在台北召开。
历史上,MICRO 长期被美国顶尖研究机构所占领,例如开会地点,仅有 10 次在美国之外的城市召开,本次是 MICRO 第二次在亚洲召开(第一次是 1999 年在以色列),吸引了大批来自包括中国在内的东亚国家研究人员参与。本届会议共收到了 283 篇投稿论文,最终录用了 61 篇,接收率为 21.6%。
图1 MICRO会场座无虚席,且有大量亚洲面孔
从本次 MICRO 论文分析来看,目前体系结构研究的热点体现在两个方面:
第一是对存储结构的关注;
第二是对神经网络加速器的关注
下图是一个对 MICRO 2016 的 Program 的 Word Cloud,我们可以有个直观的印象。其中,神经网络、存储、加速器是重点。这也与我们在上次的 ISCA 2016 分析中得到的结论保持一致。
图2 MICRO Program的Word Cloud,关键字 Memory, Neural, Accelerator.
接下来看一下 MICRO2016 投稿的数据统计:
图3 MICRO 投稿数据统计(按Topic划分)
图3是对 MICRO 2016投稿论文的统计,可以看出,关于存储方向的投稿数量超过了 105 篇(>35%)。其中,对于新型存储相关的投稿有近 40 篇(约15%),可见对其的重视程度。
图4 ISCA 25 Years(Processor V.S. Memory)
再看一下对 ISCA-25 年发展趋势回顾(图4),大家对处理器结构的研究热度自 2004 年之后就有明显的降温。与此同时,对存储,特别是近年来对新型存储结构(如 ReRAM、STT-RAM 等非易失性存储器)以及存储工艺(如 HBM 和 3DIC 等)的关注与日俱增。
今年的 MICRO 会议中,就有采用 STT-RAM 来进行 GPU 存储优化的论文(参见论文OSCAR)以及采用 3D 技术进行存储功耗优化的论文(参见论文 Snatch)。
从论文作者的地域分布来看,今年 MICRO 来自中国的作者数量有了较为大幅的增长。向MICRO 2016 投稿的中国作者人数超过 85 人,排在美国和韩国之后,位列第三。而从最终录用论文的作者统计来看,中国仅低于美国处于第二位,说明来自中国的论文数量大幅上升的前提下,质量也保持在比较高的水平。
图5 MICRO 投稿数据统计(按地域划分)
新智元整理了 ISCA 2016 神经网络相关论文,并邀美国加州大学圣塔芭芭拉分校谢源教授课题组的神经网络架构研究团队的王超博士,以及博士生李双辰、刘浏、朱茂华、谷芃等对相关论文进行点评。
MICRO2016和神经网络相关的论文列表:
NEUTRAMS: Neural Network Transformation and Co-design under Neuromorphic Hardware Constraints, Yu Ji (Tsinghua University), YouHui Zhang (Tsinghua University), ShuangChen Li (University of California, Santa Barbara), Ping Chi (University of California, Santa Barbara), CiHang Jiang (Tsinghua University), Peng Qu (Tsinghua University), Yuan Xie (University of California, Santa Barbara), WenGuang Chen (Tsinghua University)
Cambricon-X: An Accelerator for Sparse Neural Networks, Shijin Zhang (Chinese Academy of Sciences), Zidong Du (Chinese Academy of Sciences), Lei Zhang (Chinese Academy of Scienses), Huiying Lan (Chinese Academy of Sciences), Shaoli Liu (Chinese Academy of Sciences), Ling Li (Chinese Academy of Sciences), Qi Guo (Chinese Academy of Sciences), Tianshi Chen (Chinese Academy of Sciences), Yunji Chen (Chinese Academy of Sciences)
From High-Level Deep Neural Models to FPGAs, Hardik Sharma (Georgia Institute of Technology), Jongse Park (Georgia Institute of Technology), Divya Mahajan (Georgia Institute of Technology), Emmanuel Amaro (Georgia Institute of Technology), Joon Kyung Kim (Georgia Institute of Technology), Chenkai Shao (Georgia Institute of Technology), Asit Mishra (Intel), Hadi Esmaeilzadeh (Georgia Institute of Technology)
vDNN: Virtualized Deep Neural Networks for Scalable, Memory-Efficient Neural Network Design,Minsoo Rhu (NVIDIA), Natalia Gimelshein (NVIDIA), Jason Clemons (NVIDIA), Arslan Zulfiqar (NVIDIA), Stephen W. Keckler (NVIDIA)
Stripes: Bit-Serial Deep Neural Network Computing, Patrick Judd (University of Toronto), Jorge Albericio (University of Toronto), Tayler Hetherington (University of British Columbia), Tor M. Aamodt (University of British Columbia), Andreas Moshovos (University of Toronto)
Fused-Layer CNN Accelerators, Manoj Alwani (Stony Brook University), Han Chen (Stony Brook University), Michael Ferdman (Stony Brook University), Peter Milder (Stony Brook University)
NEUTRAMS: Neural Network Transformation and Co-design under Neuromorphic Hardware Constraints
摘要
《NEUTRAMS:神经网络在考虑类脑计算芯片硬件限制下的变换和协同设计》论文由清华大学张悠慧教授课题组和加州大学圣巴巴拉分校谢源教授课题组合作完成。该论文以连接复杂的神经网络算法和高效的类脑计算芯片为目标。类脑计算芯片,特别是基于 ReRAM 的芯片,可以融合数据存储与计算,在较低的功耗下还能达到很高的计算性能。然而这类芯片及硬件设计,受到为成熟的 ReRAM 工艺影响,存在许多限制:比如计算与存储精度受限,ReRAM 阵列规模受限(即计算点积向量程度受限)等问题。该论文讲高层次描述的神经网络加以转换并重新训练,使得目标神经网络可以完好的映射到这些硬件设计上,并且将硬件限制带来的影响降到最小。为了做到这一点,该论文采用神经网络模型转换和硬件映射这两个步骤。在模型转过程中,考虑到 ReRAM 阵列规模的限制,将原神经网络稀疏化后划分成规模适应于ReRAM阵列的子网络。同时,对数据进行了量化来适应硬件精度受限的问题。最后,增加新的网络层并重新训练,来减小为硬件进行的网络裁剪得来的识别率损失。硬件映射过程则采用了 Kernighan-Lin 策略。该工作分别针对以计算 SNN 的加速器结构的 Tianji 芯片和计算 CNN 的内存中计算架构(processing-in-memory)的 PRIME 硬件结构,进行了实验和探索。
Cambricon-X: An Accelerator for Sparse Neural Networks
摘要
《Cambricon-X:一种针对稀疏神经网络的加速器》的作者是中科院计算所陈云霁、陈天石研究员课题组。神经网络剪枝技术可以在保证预测精度不变的情况下消除网络中大部分突触权值数据,减少冗余计算量。目前主流深度学习加速器(如 DianNao、DaDianNao)缺乏对处理剪枝后的稀疏网络提供有效支持——需要用零填充剪去的权值,再用普通方式进行计算,故无法从剪枝中获益。
这篇论文设计了一种能有效处理稀疏网络的深度学习加速器——Cambricon-X,该加速器在将神经元送入计算单元处理前对非零神经元逐个标记,虑除零值神经元,计算单元内部的权值 buffer 只存放非零神经元对应的权值数据,从而消除多余计算和权值存储。在通用性方面,只需跳过神经元标记、虑除步骤即可按普通计算方法对非稀疏神经网络进行处理,通用性较强。与此同时,配套的编程框架中提供了调用加速器的高级语言编程接口和用来描述加速器行为的底层指令,设计者可以在 Caffe 中无缝使用加速器,易用性较好。
From High-Level Deep Neural Models to FPGAs
摘要
《从高层次深度神经网络模型到FPGAs》来自佐治亚理工Hadi Esmaeilzadeh教授的团队。文章认为FPGA由于其可编程和低功耗等特性在加速深度神经网络(DNN)中扮演重要角色,但在FPGA上实现高性能与低能耗并非易事,尤其在深度神经网络超大内存使用和FPGA有限片上内存的情况下。本文提出并设计可以根据高层次神经网络模型自动生成可综合FPGA加速器的框架(framework)DnnWeaver。该框架使用DNN专用指令集使其可采用Berkeley Caffe等价的编程接口。同时开发针对FPGA的底层优化模板设计,并根据设计需求扩展成DNN加速器。
vDNN: Virtualized Deep Neural Networks for Scalable, Memory-Efficient Neural Network Design
摘要
这篇论文来自于英伟达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% 的训练速度。
Stripes: Bit-Serial Deep Neural Network Computing
摘要
《Stripes:比特串行的深度神经网络》由多伦多大学和英属哥伦比亚大学的研究小组合作完成。由于深度神经网络不同层级和不同架构对数值精度的需求存在差异,本文提出了名为Stripes(STR)的硬件加速器,其执行深度神经网络应用的时间与其使用的数值精度的大小成正比。在不损失应用精度的情况下,STR 依赖于比特串行计算单元,并充分利了用深度神经网络中的并行性来提高计算性能和降低能耗。除此以外,STR 还提供了一定的灵活度,使得应用可在运行时进行精度、性能和能耗三方面的协调。多个基于图像分类的深度神经网络应用显示STR比DaDianNao在不损失精度的情况下有1.92x的性能提升和57%的能效提升,代价是 32% 的面积开销。
Fused-Layer CNN Accelerators
摘要
《层与层互融合的卷积神经网络加速器》一文,来自纽约州立大学石溪分校(Stony Brook University)。该论文发现,在计算神经网络时,由于是逐层计算,在计算每层的前后都要读写特征图片(feature map)。这占据了近 50% 的片外存储(off-chip memory)访问。这个观察明确了研究层间复用的动机:减少层间特征图片的片外存储访问,从而提高性能,减小带宽要求,并减小能耗。为了利用层间数据复用,该论文提出了利用金字塔多层滑动窗口(pyramid-shaped multi-layer sliding window)对输入特征图片进行处理,从而直接得到几层之后的结果。该论文还提出了一个优化框架,探索如如果划分融合层挤层内划分,选择重新计算活暂存等。经过FPGA上进行验证后,该论文展示了可减小高达 95% 的片外存储访问的结果。
除了神经网络的专门 Session 之外,今年的 MICRO 有一个专门针对神经网络硬件加速的Tutorial,名为 Tutorial on Hardware Architectures for Deep Neural Networks,由 MIT的Eyeriss 小组完成,在这里对该项目简单稍做介绍,有兴趣的读者可以自行查阅他们发表在 ISCA 2016、ISSCC 2016 的相关论文,以及新智元对 ISCA 2016上 Eyeriss 论文的点评。
【摘要】Eyeriss 是针对深度卷积神经网络设计的低功耗硬件加速器。它能够支持目前主流的卷积神经网络模型,包括对 filter、weight 和 channels 的不同配置。Eyeriss的原型测试芯片集成了168个处理单元 processing elements (PE),单元之间通过可重构片上网络来进行通信,并采用数据重用和压缩技术来降低数据传输的代价,从而减少能耗。从编程模型来看,Eyeriss芯片可以支持Caffe编程框架,在AlexNet测试集下,Eyeriss 能够实现对上千张图片的实时分类,其帧率为35 fps,功耗为 278 mW,比对应 mobile GPUs的功耗要节约10 倍以上。
图7 Eyeriss Architecture
从以上的分析不难看出,神经网络加速器和芯片设计仍旧是体系结构领域目前的研究热点。值得一提的是,除了神经网络的 Session 之外,MICRO 2016 有两个关注加速器(Accelerators)的 Session,共有 7 篇论文,说明大家对特定领域(不限于神经网络)的加速器设计保持着持续关注。
有意思的是,本年度获得 MICRO 最佳论文并不是与神经网络有关的论文,而是 “Graphicionado: A High-Performance and Energy-Efficient Accelerator for Graph Analytics”。该论文由普林斯顿大学、加州大学伯克利分校和 Intel 合作完成。论文针对目前的图计算模型,设计了一个硬件加速和优化的框架,并采用了多种优化手段来降低访存和数据传输的带宽。针对图计算的加速器能够从众多神经网络加速器的工作中脱颖而出,并一举获得 MICRO 最佳论文,其背后蕴涵的重要意义和发展趋势,值得大家思考。
文章转自新智元公众号,原文链接