百科问答小站 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 中集成 FPGA 等可编程电路的想法如何? 
  华为海思是完全自主研发么? 
  如果社会没有道德和责任感,再好的科技,再远的道路,有什么用吗? 
  CPU 只能进行数值运算,那么计算机是怎么显示出字符的? 
  华为在全球多地注册「HongMeng」商标,可能会有哪些影响? 
  如何看待因芯片断供,通用汽车推出缺芯卡车,每升油少跑 425 米,三星或在明年暂停Note系列生产? 
  花十个亿能不能买到全套国产设备,建一条纯国产芯片生产线,来磨合优化国产设备的生产工艺和代工物联网芯片? 
  网传小米澎湃 P1 芯片并非自研,南芯半导体回应「消息不实」,真实性如何?小米研发芯片的实力怎么样? 
  机器学习到底是什么,如何使用这项技术? 

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





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利