百科问答小站 logo
百科问答小站 font logo



in memory computing 存内计算是学术圈自娱自乐还是真有价值? 第1页

  

user avatar   zhangyachen 网友的相关建议: 
      

内容同步发表在公众号文章 : in memory computing是学术圈自娱自乐还是真有价值?, 欢迎关注 : )

如果单从初衷和预想的价值来看,还是很诱人的。在冯诺依曼体系中,cpu计算和memory存储是分离的,而两者之间的data movement会造成高延迟和高耗能。

关于PIM类似的思想在50年前曾有人提出过,比如1969年WILLIAM H. KAUTZ发表的论文Cellular Logic-in-Memory Arrays和1970年在斯坦福大学工作的HAROLD S. STONE发表的论文A Logic-in-Memory Computer ,不过因为当时memory scaling不大,耗能瓶颈还没有出现,人们更多的是对CPU性能的关注,所以这些想法并没有被实现。

而随着近年AI等访存密集和计算密集应用的发展,高延迟和高耗能的问题成为急需解决的问题。

Nvidia的Chief Scientist——Bill Dally在2015年的一个演讲Nvidia's Path to Exascale给了一组数据:DRAM与CPU之间的date movement耗能是单纯double precise浮点数加法耗能的1000倍。

2018年的一篇论文Google Workloads for Consumer Devices: Mitigating Data Movement Bottlenecks 统计了Google常见产品(Chome/Tensorflow Mobile/video playback/video capture)的耗能情况,发现62.7%浪费在cpu和memory之间的data movement上。

2015年Google和哈佛大学联合发表了论文Profiling a warehouse-scale computer,研究人员在Google不同数据中心的20000多台机器上做了为期三年的实验,发现只有20%左右的cycles在做【userful work】,而50% - 60%的cycles是因为Back-end bound而被浪费,在Back-end bound中,80%是【serving data cache request】

严格来说,题主说的in memory computing可以分成两类:

  • process using memory : 偏向于电路革新,比如让存储器本身具有计算能力,但是这种方法目前计算精度较为有限。
  • process near memory : 存储器内部集成额外的计算单元,比如3D-stacked memory、logic in memory controllers.

2021年Samsung发布了基于HBM-PIM的Function-in-Memory DRAM,主要针对AI场景,使用20nm DRAM工艺,并且实现了1.2TOPS的浮点数算力。可以将整体计算性能提升两倍、耗能降低70%。

Samsung在HBM-PIM中集成了额外的Programmable Computint Unit —— PCU,也就是上面说的process near memory。从下图可以看出,PCU包含了浮点数计算阵列FP16 Mult Array、流水线解码单元Pipeline Decoder、寄存器Register Group。PCU直接从邻近的DRAM中直接读取相关数据,在FP16 Mult Array中完成计算,并且根据指令进一步把结果存储到寄存器中,同时主控制器也可以根据需要把结果从寄存器读出。

另外一个比较出名的是UPMEM在2019 Hot Chips上发布的Processing-in-DRAM Engine。与Samsung的不同,这个属于process using memory,在DRAM上开发了内置于DRAM芯片本身的DPU,每个DPU可以访问64 MB的DRAM。UPMEM预计大多数应用需要几百行代码,少数人组成的团队只需2-4周就可以更新软件。

Samsung于2022年1月12号(上上周)在Nature上发布了业内首个基于 MRAM(磁性随机存储器)的存内计算芯片。这个我没细研究过,但是用MRAM来做存内计算,也算是一个巨大的飞跃。

不过还是有很多因素阻碍的PIM,比如:

  • memory interleave的问题,现代memory都是按照channel去interleave,用PIM后,比如3D-stacked memory后,如何去分布数据
  • 如何更方便的编程,什么操作用PIM,什么操作用CPU
  • cache coherence
  • 工艺的复杂程度
  • ......

Onur Mutlu在ETH Zürich的Fall 2021Computer Architecture课程里也讲过之前关于PIM论文在ISCA 2016、MICRO 2016、HPCA 2017和ISCA 2017被Reject的历史,Reviewer当时给出的comment意思基本是This Will Never Get Implemented、Not practical

Onur Mutlu对Reviewers的建议 : )

我们一般都是根据过去的经验去评价未来,没价值也没人去做了,这个价值不单单指钱 ,而且真的改变世界了呢 : )




  

相关话题

  CPU 只能进行数值运算,那么计算机是怎么显示出字符的? 
  在16G内存能够满足使用的情况下,插四条8G普通颗粒内存条会比插两条8G三星B-die内存条更好吗? 
  集成电路数字后端本科生可能找到工作吗? 
  Verilog 有什么奇技淫巧? 
  数学家下围棋,水平一定会很高吧? 
  in memory computing 存内计算是学术圈自娱自乐还是真有价值? 
  如何评价我同学说「台式机终究会被淘汰」? 
  如何看待华为收购以色列最大芯片技术公司TogaNetworks,会对突破制裁保证供应链到来哪些益处? 
  因为保研不能接受税后50w人民币年薪的海外工作offer,该如何平复心情? 
  我们高中数学为什么不重视算法?高中学的数列,三角函数,求导,圆锥曲线相关问题的解法和算法有什么关系? 

前一个讨论
Python中使用class()有什么优势 (PS:想知道实际应用中的优势)?
下一个讨论
为什么nn的较大问题是会陷入局部最优时,不选用凸函数作为激活函数?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利