存算一体文献阅读笔记一:UCSB-谢源-PRIME-RRAM NN Architecture

[Chi, P., Li, S., Xu, C., Zhang, T., Zhao, J., Liu, Y., Wang, Y., & Xie, Y. (2016). PRIME: A Novel Processing-in-Memory Architecture for Neural Network Computation in ReRAM-Based Main Memory. Proceedings - 2016 43rd International Symposium on Computer Architecture, ISCA 2016, 27–39. https://doi.org/10.1109/ISCA.2016.13]

总结

2016年的文章了,吸收一下养分,也根据别人的工作脉络跟自己做一下对照。
总体来说,对于我这种单打独斗的小课题组来说,是一篇鸿篇巨制…搁当年,这篇文章背后的体量怕是够好几个博士毕业的。

RRAM单元用于实现逻辑

RRAM作为一种新型存储器,可以实现用电压来调制电阻值,因此如果以一组电压作为输入信号,对一组串/并/级联的RRAM单元进行电学操作,根据基尔霍夫定律,可能实现一些布尔或者数学逻辑功能,这是基础。

本文章将RRAM单元的crossbar结构用于实现神经网络中最常用到的运算——乘加运算,用RRAM阻态作为权重,用电压信号作为数据输入,权重存储和乘加运算能够在RRAM单元上一并完成,并且是非易失的。
到此为止,其实前人的工作都已经提出过这种乘加方案(Yang, J., Strukov, D. & Stewart, D. Memristive devices for computing. Nature Nanotech 8, 13–24 (2013))。本文比较突出的是电路架构的实现,着实有很多亮点且很完备。整体架构如下图。
在这里插入图片描述

RRAM乘加运算

展开说说RRAM做乘加运算的方式。
给高阻态(logic 0)RRAM单元加一个较高的正电压脉冲(SET),可以将单元写为低阻态(logic 1);
反过来,低阻态(logic 1)时加一个较高的负电压脉冲(RESET),可以将单元写为高阻态(logic 0)。
如图2,a1,a2为数据输入,RRAM上的阻态代表了权重。
首先是通过电压调控对RRAM权重单元进行初始化,则权重值wij就以电导的形式存在RRAM单元,根据输入的数据对a1,a2施加模拟电压信号到wordline(横)上,则流经各bitline(纵)的电流即为输出的乘加结果,如:

Va1 * Gw11 + Va2 * Gw21 = Ib1;
Va1 * Gw12 + Va2 * Gw22 = Ib2;

负的权重怎么做呢?芯片采用了两套对偶的crossbar array ,一套给正权重,一套给负值。
而后通过外围电路模块对电流信号进行sigmoid运算就得到了该神经元的输出。
存算一体芯片的深度学习神经网络加速器中,95%以上的运算为向量矩阵乘法(MAC),因此存算一体主要用来加速这部分运算。
在这里插入图片描述

与其他NVM的横向对比

理论上换成MRAM、PCM也可实现乘加运算。

  • PCM 但据报导RRAM的endurance可达到12次方,PCM是6~8次方,PCM的写高阻电流很大得几十uA,而且需要很快的退火速度,对驱动管的宽长比不利,故而存储密度还有待提高;
  • MRAM是15次方,但MRAM的高低阻态差距太小进而对SA/ADC的要求贼高,也不好上密度,且无法多值存储。
  • RRAM的阻态受控能力更强,更适于做多值存储。通过良好的渐变电压操控,可以实现在一个bit单元上存储多bit信息。且可微缩性和cmos工艺兼容性(器件结构简单,金-绝-半三明治结构)很好。
    在这里插入图片描述
    [Yang, J. J., Strukov, D. B., & Stewart, D. R. (2013). Memristive devices for computing. Nature Nanotechnology, 8(1), 13–24.]

芯片存储部分spec

65nm TSMC PDK
Ron/Roff =1kΩ/20kΩ
V SET/RESET voltage
存储区容量为16GB
频率为533MHz

加速器类比

本论文大量提及了对比性的神经网络硬件加速器,比如 stand-alone accelerator、co-processor、multi-core/NoC achitecture等,重点提到了ISAAC [A. Shafiee et al., “ISAAC: A convolutional neural network accelerator with in-situ analog arithmetic in crossbars,” in Proc. ISCA, 2016],还有一些GPU、FPGA、ASIC平台加速器,并举例计算所的DaDianNao加速器,点明了ASIC硬件加速器中,DRAM数据存取占用95%的功耗的现状,最后指出PRIME的未来目标是支持SNN,就如IBM的TrueNorth芯片一样。
以上这些文章我都还没看完,先不做对照,先把这篇写明白。

芯片架构

架构图1

如下图,a/b方案是传统加速器方案,构造多个处理单元与CPU协同工作,类似于近存计算,存储部分和process unit是分离的,通过数据总线进行数据address。而PRIME架构的存储单元和乘加计算单元是一体的,只需要CPU传来控制信号和地址信号,即可在memory array上完成权重存取和对输入的乘加运算。PRIME的bank划分为三个region:

  • memory (Mem) subarray
    [C. Xu et al., “Overcoming the challenges of crossbar resistive memory architectures,” in Proc. HPCA, 2015]
  • full function (FF) subarray
  • buffer subarray
    在这里插入图片描述

架构图2

好图呀…内容详实,很多细节电路都尽可能的展现了出来,比如ReLU,sigmoid,精度控制,maxpooling,SA等。在这里插入图片描述

decoder & driver [A]

对输入电压信号进行多级拆分,以提供精准的字线电压,用mux进行switch控制。
为保证输入信号的同步,加了很多latch进行锁存。
在每根字线上设置了电流放大器以提高模拟信号的驱动能力。
在这里插入图片描述

Column Multiplexer [B]

包含sigmoid 和减法单元,没看明白减法单元为何如此重要。

在这里插入图片描述

SA & precision ctrl & ReLU & Maxpooling

SA的精度可以在1bit~P0 (P0<9)bit之间调制。
ReLU其实很好实现,就是信号0和输入信号之间的切换,有个比较器和mux就可以。
最后是4-1maxpooling,也是比较器+mux完事儿。
在这里插入图片描述

Buffer connection

计算/控制功能区的array和buffer array之间的数据传输。

两大优势

  1. memory 和computation功能的外围电路是公用的,节省面积;SA和ADC类似,写driver和DAC类似,电路中稍微修改了SA和写driver就完成了ADC/DAC的功能。
  2. 功能array区可以在memory/computation之间灵活切换。

芯片工作状态切换

控制信号的精细设计,此处略。

精度控制

较复杂,还未读透。

性能对比

PRIME与CPU-only、 NPU co-processor、NPU PIM-processor这些架构,执行CNN/MLP/VGG/gmean等算法,进行了性能对比,latency/energy。
可以看出PRIME加速器的表现是碾压的。
在这里插入图片描述
在这里插入图片描述

后话

其实基于NVM可以实现的逻辑是可以有很多种的,比如择多逻辑择少逻辑、与或非逻辑、异或同或逻辑等等,这些逻辑功能,绝大多数都是基尔霍夫定律的巧用罢了,要去看别人的方案,一般也都很好理解,就比如三星跟哈佛合作的那片基于MRAM做的存内计算芯片的文章。在这里插入图片描述
在这里插入图片描述
而且可以打包票其单元逻辑性一定都复杂不到哪去,因为是单元嘛,单元复杂的话,那芯片就更不用做了。但事实上,如果仅仅提出逻辑方案是发不了文章的,比如基于新型存储器件的,就有基于Hall器件、MRAM、RRAM、PCM、FeRAM、FeFET等等,只要他是个阻变单元,加电压控制,符合基尔霍夫定律,那么按理说所有的逻辑方案都是可以互相嵌套的,这没什么神秘。但问题是,这么多的NVM(新型非易失存储器)、这么多逻辑方案,绝大多数都有自己工程工艺或电路设计上难以逾越的障碍:或者是跟CMOS工艺的兼容问题、或者是器件高低阻态的区分度不足、或者是对驱动电流的要求很高等等、或者是精度/均匀性不足使得对SA/ADC/DAC精度要求很夸张,所以往往向上游构建电路、芯片的时候就很多是拿简单的前仿或者存算仿真平台(NVsim、NeuroSim等等)搞出的的spec结果来说事儿了。
因此找篇NVM做存算或者逻辑的文章来看,有时候会觉得不过尔尔,这在社会学上叫做事后聪明偏差(hindsight bias),即得知一个结果后夸大结果的可预测性。
看到一个完整的存算方案的设计思路觉得也就那么回事儿。而当一张白纸摊在你面前,让你设计一个NVM存算电路时,你就会大脑一片空白了。不能这样。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值