SRAM CIM的后续发展之我见
SRAM CIM的后续发展之我见
目前CIM技术已经应用在诸多存储器上,如主流存储器SRAM,DRAM,Flash,以及新型NVM,如RRAM,PCM,FeRAM,MRAM等。其中SRAM CIM是一个进展较快的方向,主要受益于其工艺上的成熟性,与CMOS先进工艺的高度兼容,并且SRAM的高速度也是SRAM CIM性能上的一个重要优势。
工业界对于SRAM CIM技术的关注度也是很高的,TSMC已经连续四年在ISSCC和VLSI上介绍先进的Digital SRAM CIM工作[1][2][3][4][5],使用Digital CIM的动机被阐述的非常清楚,对于目前日益增长的AI计算需求来说,与先进工艺的兼容性与高性能是需要重点关注的特性,而在先进工艺节点下,Analog CIM方案受到器件匹配,二级效应,寄生参数等诸多限制因素。因此他们在Digital CIM方案上持续深耕,并与MediaTek合作发表了一个用于超分辨率应用的芯片[6]。
我在之前的博客中谈过,采用先进工艺与否,以及应用对位数和精度上的要求,是判断Analog CIM和Digital CIM哪个Prefer的主要分野。对于不需要先进工艺且对位数和精度要求低的应用,如边缘端的一些IoT应用,Analog CIM是更好的选择,而对先进工艺或位数和精度要求高的应用,如目前的LLM等,Digital CIM是更好的选择,在两者的边界上,Hybrid CIM是可以考虑的重要方案,当然现在的Analog CIM本身也在引入Accumulator,Adder Tree之类的部件来实现某种意义上的Hybrid,另外依据高低位,或计算环节对最终计算精度的影响,来决定Digital和Analog的分配,也是Hybrid CIM设计的一个重要关注点[7][8][9]。
但回到SRAM CIM技术本身来说,作为一个尚未完全成熟的技术,目前我认为主要的限制来源于两个方面,一个是整体软硬件栈的不完善,另一个是SRAM的密度/容量限制。
先从软硬件栈的角度来说,软件上[10]为了与现有的成熟代码库兼容,需要对驱动层和中间层做出修改,以适配框架层进而支持应用层,幸运的是目前已经有一些开源编译栈来帮助减少这部分的造轮子工作量,如TVM:

但硬件也需要对软件做出相应的适配,从目前大部分CIM的设计上来看,并没有从BLAS(基础线性代数程序集)的角度来反思CIM的结构设计,更多集中在GEMV和GEMM两类运算上,而转置,交换,加法,实数点积,求秩等操作并没有被纳入考量。当然,从专用性的角度,对于完全面向AI推理应用的CIM设计来说,GEMV和GEMM已经可以满足几乎全部的需求,但从长远来看,CIM想要面对未来增长的计算负载复杂度,解决功能上的局限性是一个非常重要的问题(当然难度也是显著的)。
而SRAM的容量/密度限制是另一个重要的问题,存算最初的动机就是尽可能的减少内存数据搬运,从而减少这部分带来的功耗,但从实际情况来看,目前发表的论文,其容量基本上限制在数十到数百Kb的量级,并不能看到大容量的SRAM CIM工作,这方面固然有芯片面积限制的因素(目前的论文还没有出现大型SRAM CIM芯片,基本都是几mm乘几mm的小芯片),但也是SRAM本身容量/密度限制的一个体现,因为即使是商用CPU/GPU,其片上Cache容量依旧不大,L1 Cache往往只有32KB或64KB,但L2和L3 Cache得容量扩张是迅速的,可以到数十M的量级。如果SRAM容量小,那么大批量的数据仍然需要流进/流出SRAM,这样以存算的初衷来说,实际上并没有达到目标。但SRAM本身结构带来的密度/容量限制,使得大容量的片上SRAM的实现并非易事。
一个破局的角度是通过先进封装的方式,例如AMD的3D V-Cache的思路[11]。

另一个是类似Cerebras,Dojo或者Groq一样,想尽一切方法榨干片上面积去堆SRAM容量,其他的设计部分为SRAM让道,采用完全偏向专用设计的思路。说到这里,我觉得Groq其实已经在采用类似于近存计算的思想设计芯片了。

综上所述,我想这是两条并行的路径,从短期的视角来看,SRAM CIM技术乘着AI的浪潮,通过专用化的方法提升容量,且只关注于AI运算所需要的算子进行设计,是一条清晰且行人繁多的宽阔大路。但从长期的视角来看,如果CIM技术想要拓宽应用,而并非只作为AI技术的一个子集,真正想要成为未来计算机体系结构经典技术的一份子的话,完整的对BLAS的硬件支持,以及通过先进封装之类的方式融入现有的memory hierachy是必要的,这是一条小路,但小路上也可能会有好的风景。
引用
Y. -D. Chih et al., "16.4 An 89TOPS/W and 16.3TOPS/mm2 All-Digital SRAM-Based Full-Precision Compute-In Memory Macro in 22nm for Machine-Learning Edge Applications," 2021 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2021, pp. 252-254, doi: 10.1109/ISSCC42613.2021.9365766. ︎
H. Fujiwara et al., "A 5-nm 254-TOPS/W 221-TOPS/mm2 Fully-Digital Computing-in-Memory Macro Supporting Wide-Range Dynamic-Voltage-Frequency Scaling and Simultaneous MAC and Write Operations," 2022 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2022, pp. 1-3, doi: 10.1109/ISSCC42614.2022.9731754. ︎
H. Mori et al., "A 4nm 6163-TOPS/W/b 4790-TOPS/mm2/b SRAM Based Digital-Computing-in-Memory Macro Supporting Bit-Width Flexibility and Simultaneous MAC and Weight Update," 2023 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2023, pp. 132-134, doi: 10.1109/ISSCC42615.2023.10067555. ︎
C. -F. Lee et al., "A 12nm 121-TOPS/W 41.6-TOPS/mm2 All Digital Full Precision SRAM-based Compute-in-Memory with Configurable Bit-width For AI Edge Applications," 2022 IEEE Symposium on VLSI Technology and Circuits (VLSI Technology and Circuits), Honolulu, HI, USA, 2022, pp. 24-25, doi: 10.1109/VLSITechnologyandCir46769.2022.9830438. ︎
H. Fujiwara et al., "34.4 A 3nm, 32.5TOPS/W, 55.0TOPS/mm2 and 3.78Mb/mm2 Fully-Digital Compute-in-Memory Macro Supporting INT12 × INT12 with a Parallel-MAC Architecture and Foundry 6T-SRAM Bit Cell," 2024 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2024, pp. 572-574, doi: 10.1109/ISSCC49657.2024.10454556. ︎
M. -E. Shih et al., "20.1 NVE: A 3nm 23.2TOPS/W 12b-Digital-CIM-Based Neural Engine for High-Resolution Visual-Quality Enhancement on Smart Devices," 2024 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2024, pp. 360-362, doi: 10.1109/ISSCC49657.2024.10454482. ︎
A. Guo et al., "34.3 A 22nm 64kb Lightning-Like Hybrid Computing-in-Memory Macro with a Compressed Adder Tree and Analog-Storage Quantizers for Transformer and CNNs," 2024 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2024, pp. 570-572, doi: 10.1109/ISSCC49657.2024.10454278. ︎
Y. Yuan et al., "34.6 A 28nm 72.12TFLOPS/W Hybrid-Domain Outer-Product Based Floating-Point SRAM Computing-in-Memory Macro with Logarithm Bit-Width Residual ADC," 2024 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2024, pp. 576-578, doi: 10.1109/ISSCC49657.2024.10454313. ︎
P. -C. Wu et al., "A 22nm 832Kb Hybrid-Domain Floating-Point SRAM In-Memory-Compute Macro with 16.2-70.2TFLOPS/W for High-Accuracy AI-Edge Devices," 2023 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2023, pp. 126-128, doi: 10.1109/ISSCC42615.2023.10067527. ︎
J. Kim, B. Kim, and T. Kim, Processing-in-Memory for AI: From Circuits to Systems. Springer International Publishing, 2022. [Online]. Available: https://books.google.co.jp/books?id=S0V6EAAAQBAJ ︎
J. Wuu et al., "3D V-Cache: the Implementation of a Hybrid-Bonded 64MB Stacked Cache for a 7nm x86-64 CPU," 2022 IEEE International Solid-State Circuits Conference (ISSCC), San Francisco, CA, USA, 2022, pp. 428-429, doi: 10.1109/ISSCC42614.2022.9731565. ︎
SRAM CIM的后续发展之我见的更多相关文章
- 对EasyDarwin开源项目后续发展的思考:站在巨人的肩膀上再跳上另一个更高的肩膀
2017 EasyDarwin现状 自从2012年EasyDarwin项目创立开始,经过了快5年了,时光飞逝,如今EasyDarwin已经发展成为了不仅仅是一个单纯的开源流媒体服务器项目了,已经是各种 ...
- 短视频APP+不同类型社交应用发展分析+化妆品电商
短视频APP——昙花一现还是发展趋势? 在这个互联网与科技并行且飞速发展的时代,各种app不断涌入市场,其中短视频app便是一个典型,美拍,就成功入围2014年十大最火app.而短视频app也势必要成 ...
- Spark发展现状与战线
前言 现今Spark正是风头正劲时,Spark本是UCBerkeley的AMPLab诞生的项目,后来捐赠给了Apache来管理源码和后续发展.今年从Apache孵化器终于孵化出了1.0版本.其对大数据 ...
- [Object Tracking] Overview of algorithms for Object Tracking
From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...
- EasyDSS RTMP流媒体服务器是怎样炼成的:Easy而且更加互联网!
开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的 ...
- 修改,编译,GDB调试openjdk8源码(docker环境下)
在上一章<在docker上编译openjdk8>里,我们在docker容器内成功编译了openjdk8的源码,有没有读者朋友产生过这个念头:"能不能修改openjdk源码,构建一 ...
- 安防视频互联网化的EasyDSS流媒体服务器不但能Easy安防流媒体的开发而且能更加互联网化视频协议的输出
开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的 ...
- ASP.NET Core Razor Pages 初探
最近新建 Asp.net Core MVC 项目的时候不小心选错了个模板,发现了一种新的项目模板.它使用cshtml视图模板,但是没有Controller文件夹.后来才发现这是ASP.NET Core ...
- 谨慎使用Marker Interface
之所以写这篇文章,源自于组内的一些技术讨论.实际上,Effective Java的Item 37已经详细地讨论了Marker Interface.但是从整个Item的角度来看,其对于Marker In ...
- What is Away3D
做了几个基于Flash平台的3D的项目,一路走来收获颇多.Away3D作为一个开源的Flash3D引擎,在3D页游领域,无疑是当前OGRE在国内的地位. 翻译出了多年前做Away3D中国社区的时候翻译 ...
随机推荐
- Lambert 光照模型
简介 lambert 光照模型可以说是最简单的光照模型了. 主要考虑了 漫反射. 漫反射也单单考虑了经验模型. 主要观察 面片渲染器(我是这么叫的) 参考链接 https://zhuanlan.zhi ...
- 有哪些值得推荐的ESB厂商
国内比较好的esb厂商有哪些 企业要想追求创新性转型,就必须要实现企业内部系统的互联互通以及与外部合作伙伴的高效协作,而企业服务总线(ESB)作为实现系统集成的关键技术,是企业发展路径上不可多得的助力 ...
- ICEE-Microchip-MPLAB® X IDE-Microchip-MPLAB-Harmony extension + MHC(**Harmony Configurator)
Microchip-MPLAB-Harmony: Developer Sources: https://microchipdeveloper.com/xwiki/bin/view/software-t ...
- java配置环境变量采坑
用几年java了,环境变量还要采坑 注意图中JAVA_HOME最后那个":",打开之后编辑环境变量的列表里是没有的,你得点击编辑文本把它删了
- git命令行最佳学习方式
https://learngitbranching.js.org/
- Unity文件变更回调函数
直接上代码 public class AssetImportTest : AssetPostprocessor { static void OnPostprocessAllAssets( string ...
- 万人同屏 角色动画优化 Animation Instancing动画实例化– SkinnedMeshRenderer的实例化 GPU Instancing
在上一篇文章中有个技术点引发了我的好奇 GPU Instancing 这个技术是Unity自带的功能,但是他不支持SkinnedMeshRenderer,所以要采用特殊方法 他这里采用GPU蒙皮+EC ...
- 云产品-容器镜像服务(CR)
容器镜像服务(Container Registry)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理.容器镜像服务简化了 ...
- VUE实现Web端多人语音视频聊天
1 多人语音聊天功能介绍 本文展示了如何使用 ZEGO Express SDK 构造多人音视频通话场景,即实现多对多实时音视频聊天互动.用户可在房间内与其余用户进行实时音视频通话,互相推拉流.该场景可 ...
- WebSoket的概述,API和使用
一.概念 1 Web Socket(套接字)的目标时通过一个长时连接实现语服务器全双工,双向的通信 2.在js中创建一个Web Socket时,会发送一个http请求到服务器以初始化连接.服 ...