什么是存算一体
存算一体(Computing in Memory)是在存储器中嵌入计算能力,以新的运算架构进行二维和三维矩阵乘法/加法运算。
存算一体技术概念的形成,最早可以追溯到上个世纪70年代。随着近几年云计算和人工智能(AI)应用的发展,面对计算中心的数据洪流,数据搬运慢、搬运能耗大等问题成为了计算的关键瓶颈。
在过去二十年,处理器性能以每年大约55%的速度提升,内存性能的提升速度每年只有10%左右。结果长期下来,不均衡的发展速度造成了当前的存储速度严重滞后于处理器的计算速度。
在传统计算机的设定里,存储模块是为计算服务的,因此设计上会考虑存储与计算的分离与优先级。但是如今,存储和计算不得不整体考虑,以最佳的配合方式为数据采集、传输和处理服务。这里面,存储与计算的再分配过程就会面临各种问题,而它们主要体现为存储墙、带宽墙和功耗墙问题。
算力发展速度远超存储(来源:amirgholami@github)
虽然多核(例如CPU)/众核(例如GPU)并行加速技术也能提升算力,但在后摩尔时代,存储带宽制约了计算系统的有效带宽,芯片算力增长步履维艰。
从处理单元外的存储器提取数据,搬运时间往往是运算时间的成百上千倍,整个过程的无用能耗大概在60%-90%之间,能效非常低,“存储墙”成为了数据计算应用的一大障碍。特别是,深度学习加速的最大挑战就是数据在计算单元和存储单元之间频繁的移动。
数据搬运占据AI计算的主要能耗
存内计算和存内逻辑,即存算一体技术直接利用存储器进行数据处理或计算,从而把数据存储与计算融合在同一个芯片的同一片区之中,可以彻底消除冯诺依曼计算架构瓶颈,特别适用于深度学习神经网络这种大数据量大规模并行的应用场景。
需要注意的是,一般的存算一体指的是“compute-in-memory”或“compute-near-memory”,与存储服务器的分布式设计或服务器内存计算不是一个细分领域的。对于国内一些做ssd controller+AI的芯片,个人建议直接称之为“compute-in-ssd”或“compute-in-storage”,避免交流时的歧义。
计算芯片架构的演进
存算一体发展史
1969年,斯坦福研究所的Kautz等人提出了存算一体计算机的概念。但受限于当时的芯片制造技术和算力需求的匮乏,那时存算一体仅仅停留在理论研究阶段,并未得到实际应用。
为了打破冯诺依曼计算架构瓶颈,降低“存储-内存-处理单元”过程数据搬移带来的开销,学术界和工业界尝试了多种方法。其中比较直接的方法是近存计算,减少内存和处理单元之间的路径,如通过3D封装技术实现3D堆叠,将多层DRAM堆叠而成的新型内存,能提供更大的内存容量和内存带宽。此外,Intel和Micron合作开发的基于PRAM存储介质的3D Xpoint属于堆叠型内存,旨在缩短片上存储与内存之间的路径。但上述方案并没有改变数据存储与数据处理分离的问题,并不能从根本上解决冯诺依曼计算架构瓶颈。
近年来,随着半导体制造技术的突飞猛进,以及AI、元宇宙等算力密集的应用场景的崛起,为存算一体技术提供新的制造平台和产业驱动力。
2010年,惠普实验室的Williams教授团队用忆阻器实现简单布尔逻辑功能。2016年,美国加州大学圣塔芭芭拉分校(UCSB)的谢源教授团队提出使用RRAM构建存算一体架构的深度学习神经网络(PRIME)。相较于传统冯诺伊曼架构的传统方案,PRIME可以实现功耗降低约20倍、速度提升约50倍,引起产业界广泛关注。
随着人工智能等大数据应用的兴起,存算一体技术得到国内外学术界与产业界的广泛研究与应用。在2017年微处理器顶级年会(Micro 2017)上,包括英伟达、英特尔、微软、三星、加州大学圣塔芭芭拉分校等都推出了他们的存算一体系统原型。
存算一体的优势
存算一体的优势是打破存储墙,消除不必要的数据搬移延迟和功耗,并使用存储单元提升算力,成百上千倍的提高计算效率,降低成本。
存算一体属于非冯诺伊曼架构,在特定领域可以提供更大算力(1000TOPS以上)和更高能效(超过10-100TOPS/W),明显超越现有ASIC算力芯片。
除了用于AI计算外,存算技术也可用于感存算一体芯片和类脑芯片,代表了未来主流的大数据计算芯片架构。
存算一体技术的核心优势包括:
- 减少不必要的数据搬运。(降低能耗至1/10~1/100)
- 使用存储单元参与逻辑计算提升算力。(等效于在面积不变的情况下规模化增加计算核心数)
存算一体的市场驱动力
目前,存算一体的商业驱动力主要源于AI和元宇宙算力的需求、并行计算在深度学习的广泛应用。看向应用端,存算一体的市场发展驱动却是非常强烈的。
以数据中心为例,百亿亿次(E级)的超级计算机成为各国比拼算力的关键点,为此美国能源部启动了“百亿亿次计算项目(Exascale Computing Project)”;中国则联合国防科大、中科曙光和国家并行计算机工程技术研究中心积极开展相关研究,计划于推出首台E级超算。但要想研制E级超算,科学家面临的挑战之中首当其冲的就是功耗过高问题。以现有技术研制的E级超算功率高达千兆瓦,需要一个专门的核电站来给它供电,而其中50%以上的功耗都来源于数据的“搬运”,本质上就是冯·诺依曼计算机体系结构计算与存储的分离设计所致。
基于神经网络的人工智能的兴起,大算力高能效比的存内计算获得了广泛关注。在神经网络运算中,其运算权重固定,一般仅“输入”是实时产生,因此可以将权重存在片上存储器,等外部“输入”进入后再进行高能效的存内计算。同时,随着存算一体技术的进步,通过存内计算和存内逻辑,已经可以完成32位以上的高精度计算,普遍适用于从端到云的各类计算需求。
此外,新型存储器的出现也带动了存算一体技术的发展,为存算一体技术升级方向提供可能。其中,阻变忆阻器RRAM使用等效器件电阻调制来实现数据存储,可以实现更高的计算密度。新型存储器与存算一体技术的结合,形成了新一代的算力元素,有望推动下一阶段的人工智能发展。
存算一体技术分类
在冯诺伊曼架构中,计算单元与内存是两个分离的单元。计算单元根据指令从内存中读取数据,在计算单元中完成计算和处理,完成后再将数据存回内存。
在这个过程中,存储器与处理器之间数据交换通路窄,以及由此引发的高能耗形成两大难题,在存储与计算之间筑起一道“存储墙”。能耗方面,大部分能耗在数据搬运过程中产生,数据搬运功耗是计算功耗的1000倍。而数据搬运速度方面,AI运算需1PB/s,但DRAM 40GB-1TB/s 都远达不到要求。
存算一体技术的分类
目前存算技术按照以下历史路线顺序演进:
• 查存计算(Processing With Memory):GPU中对于复杂函数就采用了这种计算方法,是早已落地多年的技术。通过在存储芯片内部查表来完成计算操作。这是最早期的技术。
• 近存计算(Computing Near Memory):典型代表是AMD的Zen系列CPU。计算操作由位于存储区域外部的独立计算芯片/模块完成。这种架构设计的代际设计成本较低,适合传统架构芯片转入。将HBM内存(包括三星的HBM-PIM)与计算模组(裸Die)封装在一起的芯片也属于这一类。近存计算技术早已成熟,被广泛应用在各类CPU和GPU上。
• 存内计算(Computing In Memory):典型代表是Mythic、千芯科技、闪亿、知存、九天睿芯等。计算操作由位于存储芯片/区域内部的独立计算单元完成,存储和计算可以是模拟的也可以是数字的。这种路线一般用于算法固定的场景算法计算。
• 存内逻辑(Logic In Memory):这是较新的存算架构,典型代表包括TSMC(在2021 ISSCC发表)和千芯科技。这种架构数据传输路径最短,同时能满足大模型的计算精度要求。通过在内部存储中添加计算逻辑,直接在内部存储执行数据计算。
技术应用方向
AI和大数据计算
存算一体被多家技术趋势研究机构确定为今后的科技趋势。存算一体是突破AI算力瓶颈和大数据的关键技术。因为利用存算一体技术,设备性能不仅能够得到提升,其成本也能够大幅降低。
通过使用存算一体技术,可将带AI计算的中大量乘加计算的权重部分存在存储单元中,在存储单元的核心电路上做修改,从而在读取的同时进行数据输入和计算处理,在存储阵列中完成卷积运算。由于大量乘加的卷积运算是深度学习算法中的核心组成部分,因此存内计算和存内逻辑非常适合人工智能的深度神经网络应用和基于AI的大数据技术。
感存算一体
集传感、储存和运算为一体构建感存算一体架构,解决冯诺依曼架构的数据搬运的功耗瓶颈,同时与传感结合提高整体效率。在传感器自身包含的AI存算一体芯片上运算,来实现零延时和超低功耗的智能视觉处理能力。基于SRAM模数混合的视觉应用存内计算神经拟态芯片仅在检测到有意义的时间才会进行处理,大幅降低能耗。
类脑计算
类脑计算(Brain-inspired Computing)又被称为神经形态计算(Neuromorphic Computing)。是借鉴生物神经系统信息处理模式和结构的计算理论、体系结构、芯片设计以及应用模型与算法的总称。
近年来,科学家们试图借鉴人脑的物理结构和工作特点,让计算机完成特定的计算任务。目的是使计算机像人脑一样将存储和计算合二为一,从而高速处理信息。
存算一体天然是将存储和计算结合在一起的技术,天然适合应用在类脑计算领域,并成为类脑计算的关键技术基石。
由于类脑计算属于大算力高能效领域,因此针对云计算和边缘计算的存算一体技术,是未来类脑计算的首选和产品快速落地的关键。
数字存算一体与模拟存算一体对比
存算一体的计算方式分为数字计算和多比特模拟计算。
数字存算一体主要以SRAM和RRAM作为存储器件,采用先进逻辑工艺,具有高性能高精度的优势,且具备很好的抗噪声能力和可靠性。
而模拟存算一体通常使用FLASH、RRAM、PRAM等非易失性介质作为存储器件,存储密度大,并行度高,但是对环境噪声和温度非常敏感。例如Intel和NVIDIA的算力芯片,尽管也可采用模拟计算技术提升能效,但从未有一颗大算力芯片采用模拟计算技术。
数字存算一体适合大算力高能效的商用场景,而模拟存算一体适合小算力、不需要可靠性的民用场景。
存算一体的存储介质对比
目前可用于存算一体的成熟存储器有NOR FLASH、SRAM、DRAM、RRAM、MRAM等NVRAM。
早期创业企业所用FLASH属于非易失性存储介质,具有低成本、高可靠性的优势,但在工艺制程有明显的瓶颈。
SRAM在速度方面和能效比方面具有优势,特别是在存内逻辑技术发展起来之后具有明显的高能效和高精度特点。
DRAM成本低,容量大,但是速度慢,且需要电力不断刷新。
适用存算一体的新型存储器有PCAM、MRAM、RRAM和FRAM等。其中忆阻器RRAM在神经网络计算中具有特别的优势,是除了SRAM存算一体之外的,下一代存算一体介质的主流研究方向。目前RRAM距离工艺成熟还需要2-5年,材料不稳定,但RRAM具有高速、结构简单的优点,有希望成为未来发展最快的新型存储器。
从学术界和工业界的研发趋势上看,SRAM和RRAM都是未来主流的存算一体介质。
存储器类型 | 优势 | 不足 | 适合场景 |
SRAM(数字模式) | 能效比高,高速高精度,对噪声不敏感,工艺成熟先进,适合IP化 | 存储密度略低 | 大算力、云计算、边缘计算 |
SRAM(模拟模式) | 能效比高,工艺成熟先进 | 对PVT变化敏感,对信噪比敏感,存储密度略低 | 小算力、端侧、不要求待机功耗 |
各类NVRAM(包括RRAM/MRAM等) | 能效比高,高密度,非易失,低漏电 | 对 PVT变化敏感,有限写次数,相对低速,工艺良率尚在爬坡中 | 小算力、端侧/边缘Inference、待机时间长的场景 |
Flash | 高密度低成本,非易失,低漏电 | 对 PVT变化敏感,精度不高,工艺迭代时间长 | 小算力、端侧、低成本、待机时间长的场景 |
DRAM | 高存储密度,整合方案成熟 | 只能做近存计算,速度略低,工艺迭代慢 | 适合现有冯氏架构向存算过渡 |
几种存储介质对比
存算一体的应用场景
存算一体芯片适用于各类人工智能场景和元宇宙计算,如可穿戴设备、移动终端、智能驾驶、数据中心等。
按算力大小划分:
1)针对端侧的可穿戴等小设备,对算力的要求远低于智能驾驶和云计算设备,但对成本、功耗、时延、开发难度很敏感。端侧竞品众多,应用场景碎片化,面临成本与功效的难题。存算一体技术在端侧的竞争力影响约占30%。(例如arm占30%,降噪或ISP占40%,AI加速能力只占30%)
2)针对云计算和边缘计算的大算力设备,是存算一体芯片的优势领域。存算一体在云和边缘的大算力领域的竞争力影响约占90%。
边缘端存算一体芯片在边缘端具有高算力、低功耗、高性价比的优势。
而针对智能驾驶、数据中心等大算力应用场景,在可靠性、算力方面有较高要求云计算市场玩家相对集中。各家有各家的算法和生态细节,芯片售价较高。存算一体芯片以其高能效大算力优势有望另辟蹊径抢占云计算市场。
就目前云计算算力市场,GPU的单一架构已经不能适应不同AI计算场景的算法离散化特点。例如,在图像、推荐、NLP领域有各自的主流算法架构。GPU无论在算力上还是能效上都无法同时与多个领域的专用加速芯片竞争。
总结
存算一体已经被知名研究机构和产业方确定为下一代技术趋势之一。
目前国内外存算一体企业,都是刚刚起步阶段,差距尚不大。存算一体芯片在设计层面是创新的,没有成熟的方法借用。
存算一体是计算系统和存储系统的整合设计,比标准模拟IP和存储器IP更更复杂,依赖于多次存储器流片而积累的经验,需要创始团队有充分的存储器量产经验和技术路线认知。
目前行业主要两类路径,一类是从小算力1TOPS开始往上走,解决的是音频类、健康类及低功耗视觉终端侧应用场景,AI落地的芯片性能以及功耗问题。
另一类主要是针对大算力场景>100TOPS,解决大算力问题,在无人车、泛机器人、智能驾驶,云计算领域提供高性能大算力和高性价比的产品。
由于云计算和智能驾驶需求多样,且各大厂的算法和生态有明显的差异化,因此这些领域都有比较好的成长空间。
随着AI技术的加速落地,和元宇宙技术对于算力的大量需求,存算一体技术会不断进步,成为继CPU、GPU架构之后的算力架构“第三极”。