如果您希望可以时常见面,欢迎标星收藏哦~
内存计算(In-memorycomputing,IMC)的发展之路坎坷,最引人瞩目的商业化尝试以失败告终。尽管一些公司已经转向数字化,而另一些公司则完全放弃了这项技术,但开发人员仍在努力让模拟IMC取得成功。
关于IMC(也称为内存计算,或CIM)的好处存在分歧。有人说,这一切都是为了减少数据移动,而数据移动是AI能耗的重要组成部分。“把MAC(乘法/累加电路)放下来很容易,”SynopsysARCAI处理器产品经理GordonCooper说。“为它们提供数据并确保数据高效地流过它们要困难得多。”
其他公司则专注于计算能力,每家公司都相信自己开发的产品可以解决这两个问题中最重要的一个,甚至两个问题。然而,既能减少数据移动,又能执行低功耗AI计算,同时兼顾成本和可制造性的优化电路仍然难以实现。
Rambus的杰出发明家StevenWoo表示:“数据移动是关键问题,无论是对于性能还是功耗而言都是如此。世界上并不缺少数据,尤其是对于这些大型AI模型而言,训练集非常庞大。”
目前尚不清楚哪种方法才是解决这一问题的最佳途径,但IMC是一种可能的选择。对于那些不知道正在进行的秘密创业工作的人来说,这个话题似乎已经退回到研究实验室,那里正在进行大量工作。“我觉得我们还没有完全走出研究阶段,”Cadence产品营销集团总监FrankFerro说。
然而,新的产品和方法正在尝试改变这一现状。
不止一种含义
“内存中”的概念将这一概念进一步发展,并彻底颠覆了这一概念。先前的方法是将内存放在计算附近。IMC则更多地是将计算放在内存所在的地方。不同IMC之间的一个主要区别是,计算是在内存阵列内部但在内存单元之外进行,还是这些单元自己执行计算。
另一个区别是计算的性质——数字或模拟。数字IMC往往是那种在整个阵列中散布着几个数字门的类型。“你将存储单元与执行乘法的计算元件和执行累加的计算元件交错在一起,并在所有这些周围放置大量其他数字逻辑来执行所有其他操作,”Axelera首席执行官FabriziodelMaffeo表示。
数字IMC背后的理念并不复杂——它只是将数字算术电路从一个地方移动到另一个地方。但这并不意味着它很容易。构建高效的电路和工具仍需要大量工作。只是它不像模拟那样紧张。
模拟计算通常通过将存储单元视为具有可变内容来执行,这些内容可以通过感测流过存储单元的电流来测量。字线采用实值。在最著名的实现类型中,字线和位线交叉处的每个单元实际上将输入电压乘以单元电导率,该电导率由存储的单元值设置。通过允许多个字线同时处于活动状态,每个相乘电流的总和将成为乘积的结果总和。位线上的所有单元都可以并行执行乘法。
Sagence战略与业务开发副总裁RichardTerrill表示:“(闪存IMC解决方案)基于将数亿个闪存单元放置在一个芯片上,以便我们能够在现场完成所有工作。”
该技术的一个限制是它需要整数数据。这对于视觉来说很自然,但基于注意力的网络(例如大型语言模型(LLM))更经常使用浮点数据,这使得此类应用程序超出了该架构的范围。
我们要解决什么问题?
IMC所要解决的问题尚未明确定义或达成一致。虽然所有人都同意降低功耗是最终目标,但存在争议的是主要问题是移动数据的成本还是计算的成本。
数字方法往往侧重于移动数据的成本,因为无论数字电路是在内存阵列内部还是外部,计算能力都大体相同。这试图解决内存带宽问题。Cadence的Ferro表示:“我们每天都被超大规模计算需要更多带宽的问题搞得头疼。”
Expedera首席科学家兼联合创始人SharadChole对此表示同意。“瓶颈不再是计算或内存,而是计算和内存之间的带宽,”他说。
使用数字IMC,计算方式不会发生重大变化。“你拥有的基本技术仍然与数字加速器相同,”EnchargeAI首席执行官NaveenVerma表示。“通过在内存中插入[加法器],你实际上所做的就是扩大内存,并且所消耗的能量与你在内存外部执行时所消耗的能量相同。与标准数字计算相比,其好处是渐进的。”
也可能没有一个正确的答案。相反,它可能取决于正在执行的模型的性质,尤其是LLM。Expedera的Chole解释说:“如果你的上下文长度很小,比如256个token,那么权重就占主导地位。但是如果你生成了32,000个token,那么激活就开始成为重要的部分。如果你的激活动作主导了力量,那么将权重存储在模拟域中的好处将无法抵消这一点。”
争论的另一个方面是,将所需的所有权重全部填充到内存中是否可行,这样就无需进一步移动。基于闪存的方法声称具有非易失性的优势,因此权重即使在电源循环后仍会保留在原位。但这意味着设备必须适合最大的模型。另一方面,容量超过必要会浪费硅,尽管该分析假设设计中只有一个模型。“我们实际上最终存储了多个模型,”Sagence的Terrill说。
直到推出这些芯片的各家公司有机会在现场证明自己之前,这场争论都不会结束。目前,还没有一个明确的正确答案。
模拟的挑战
在经典实现中,每个闪存单元都保存整个权重。INT8是视觉和卷积神经网络(CNN)中较为流行的数据格式之一,但在单个闪存单元中保存8位值是一项艰巨的任务。而且有效精度仍然会受到影响。“我还没有听说过有任何东西能超过4位有效精度,”Drego补充道。“但在一些小众应用中,这些东西可以非常非常高效。”
商用闪存单元存储三位数据已经存在多年。四位单元现已成为现实,五位单元正在兴起。但没有人拥有八位单元。这需要极其小心,尤其是如果要跨多个单元、芯片、晶圆和批次以及所有环境条件和老化后工作。现实情况是,人们可能不得不接受较低的精度,从而限制该技术的实用性。
令人担忧的是,随着细胞老化,它们的运作方式将发生变化,从而导致潜在的幻觉,我们或许可以称之为“硅老化”。事实上,这种老化的芯片不太可能产生幻觉,即给出可能合理但错误的答案。人们更有可能得到胡言乱语,但这仍然是不可接受的。
除了老化之外,还必须以某种方式消除制造和环境变化,以便所有芯片都能正常工作。事实证明,这极具挑战性,而且这个问题可能是影响过去努力的关键问题。即使没有变化,模拟从定义上来说也没有数字那样的噪声裕度。“模拟的问题一直是噪声,”Verma说道。
另一个挑战是模拟计算只是加速器操作的一部分。其他函数,如softmax或非线性激活函数,必须在数字域中发生。这意味着在每一层以模拟方式计算其矩阵乘积后,必须将结果转换为数字以生成激活,然后必须将其转换回模拟以供下一层使用。Quadric首席营销官SteveRoddy指出:“最终,激活来回流动,最终会变得一团糟。”
在所有这些转换过程中保持精度需要精确的DAC和ADC,而这些电路会消耗大量能量,从而抵消该架构的主要优势之一。
最后一个挑战可能是成本,尽管这还有待观察,并且取决于所实施的内存技术。“如果你正在构建一个带有闪存或DDR变体的独立芯片,你的成本将比美光、海力士和三星高得多,而这些公司的产量高达数以亿计,”Drego说。
尽管存在这些问题,一家名为Sagence(隐身模拟推理)的新创业公司还是推出了一款新的模拟IMC产品——从外观上看,它与Mythic的做法惊人地相似。另一家尚未正式推出的新公司是EnChargeAI,它拥有独特的传感技术。
再说一次,如果你仔细观察Sagence的技术,你会说它与Mythic所做的类似。闪存阵列?对。校准以处理变化?对。多位闪存单元?对。在感测放大器中进行求和?对。目前尚不清楚Mythic采用了哪种闪存单元,但Sagence表示它使用的是已获得NOR配置许可的标准闪存单元。所有使闪存阵列适应推理的电路都位于阵列外部,因此单元面积效率为4F2。
与之前实现的主要区别在于,该公司在深亚阈值状态下运行闪存阵列。这可以节省几个数量级的功率,电流以纳安的几分之一来测量。但这也带来了一个挑战,因为数学不再是线性的,因此图1所示的欧姆定律方法不再适用。
Sagence通过对数存储权重来解决这个问题。这意味着闪存单元中的不同级别并不是均匀分布的。数据值越高,它们就越接近。底部部分可能比线性版本更容易检测,但顶部部分将更难区分。更困难的是,在深亚阈值下操作时,整体读取窗口更小。
Sagence也认为数字和模拟之间的转换必须精确,而且这些转换需要耗能。“如果我们没有那个ADC,我们每次操作的电流消耗将比非IMC实现低三到四个数量级,”Sagence创始人、总裁兼首席执行官VishalSarin表示。“但由于我们使用精密ADC,因此损失了一个数量级。”
然而,有些应用程序可以以较低的精度工作。“[每个单元存储的位数]取决于网络的要求,”Terrill解释道。“我们可以将存储位数提高到8。通常更少,因为我们确定了所需的精度,然后以该量化方式存储。”
另一个令人惊讶的方面是,乘法略有随机性。Sagence表示,它尽其所能消除系统误差,但即使它完美地做到了这一点,小的随机误差仍会存在。随机性实际上使值之间的界限变得模糊,而在顶端,部分非常狭窄,一些可能会有效崩溃。
Sagence表示,这种方法之所以有效,是因为实际版本将有数百甚至数千个单元沿着每条位线。考虑到这些大数字,这么多单元上正负几个百分点的误差将平均达到足够的精度。“如果你想要准确地记录某人的银行账户,你就不会做这种乘法和加法,”Sarin说。“但对于深度学习来说,这是一个完美的选择。”
不过,对于任何AI解决方案来说,工具都是必不可少的,这样用户就不会被复杂性所困扰。Sagence的编译器在设计时就考虑到了对数性质,静态地为单元分配权重。
“对于硬件资源识别,一切都是在编译时完成的,这意味着您不必进行任何运行时调度,”Sagence产品营销高级总监SuhasNayak解释道。“模拟量化器进行硬件感知训练、噪声感知训练,并在运行时需要时生成信息以供进一步校准。”这种静态调度的好处是延迟固定且可预测。
根据架构,这似乎是一个仅使用整数的解决方案,这会将其排除在基于注意力的网络之外,但该公司还有其他计划。“我们计划使用专有方法在我们的GenAI解决方案中实现注意力,”Sarin说。“这是我们解决方案的重要组成部分。”
一些探索
EnCharge在三个主要领域采用了完全不同的方法——存储单元的类型、每个单元存储的位数以及感测结果的方式。后者是一项重大突破,因为所有之前的电流感测方案都因制造和环境条件而有很大差异。在从普林斯顿大学分离出来之前,该公司发现电容器可以存储电荷作为感测机制,而不受任何依赖。
“这种电容器最重要的一点是它不受温度影响,”Verma解释道。“它不受材料参数影响。它是完全线性的。它只取决于导线之间的空间。它可以扩展到最先进的节点,因为它们可以让你更好地控制几何形状。”
该公司已确定,累加需要比乘法更高的精度,而这正是电容器所提供的。该阵列由SRAM单元组成,每个单元存储一位权重。由于EnCharge尚未正式推出其技术,因此仍有许多细节未披露。要点是SRAM单元提供乘法,每个结果控制一个将电荷置于电容器上的开关。
电容器物理上位于SRAM单元上方,位于两层金属之间,因此易于构建且不占用额外空间。单个MAC的电容器连接在同一块板上。然后,相反的电容器板会平均所有这些电荷,从而有效地提供加法。它是一个模拟值,因此需要ADC转换为数字形式。无需DAC。
EnCharge的阵列需要重新加载数据,因为内存是易失性的,而且阵列不够大,无法容纳整个模型。“为了最大限度地降低开销,我们使用了类似于虚拟内存的虚拟化架构,”Verma说。
尽管这种传感方法似乎很新颖,但该公司表示,它已在ADC等高精度电路中得到验证。Verma指出:“它的可靠性、可扩展性、准确性和可制造性已通过这些其他超高精度模拟电路得到验证。”
DRAM或将加入游戏
在最后一个新想法中,初创公司NeoSemiconductor提出了使用其3DDRAM的IMC方案。“我们可以在3DDRAM阵列中执行大量计算,而无需将其发送到SRAM,”Neo首席执行官兼联合创始人AndyHsu表示。
Neo的主要开发重点是使用浮体电荷存储而不是电容器的堆叠3DDRAM。与EnCharge一样,每个DRAM单元都包含一个权重位。这表明乘法技术与EnCharge类似,但Neo尚未透露其如何处理多位乘法。
然而,传感方式有所不同。垂直位线承载着经过测量和数字化的模拟电流。它还有一个ADC,但没有DAC。该方法只需使用适当数量的DRAM位(通常对于INT8为8位)即可直接用于整数数据。该公司表示,浮点单元对于基于注意力的网络是必不可少的,但尚未透露其工作原理。
Neo的目标是将HBM分为两个阶段。首先,它可以用3DDRAM版本替换HBM堆栈中的内存芯片,这可以将容量提高两个数量级。第二阶段将HBM基片上的感测放大器电路替换为神经电路。“对于AI,底部芯片将被替换为[可以]执行激活功能的芯片,”Hsu说。
这种技术的一个可能问题是热量。在DRAM中,典型的位线将反映单个单元的值。使用AI,您可以测量多个单元的电流。HBM已经面临热挑战。如果不采取进一步的缓解措施,进一步增加电流量似乎是值得怀疑的。
Neo表示,由于其DRAM技术与众不同,其读取电流约为标准DRAM典型值的10%,因此其起始电流较小。它一次处理8位,因此电流应低于标准DRAM电流。8位并不多,但该公司将整体数据分成8位组并按顺序处理。这种方法可能会影响延迟,但目前尚无具体数字。
这个提议需要更多的验证才能成为现实。Neo目前的主要重点是其3DDRAM。人工智能游戏是该公司的另一个想法,今年刚刚披露。但目前它仍处于概念阶段。
模拟IMC又活了一天
人们已经热切期待了多年,许多人显然认为它还未准备好迎接黄金时段。这是一个成熟的大学研究课题,许多不知道即将推出的人已经确信,要让它发挥作用,需要进行一些重大改变。
Sagence的技术试图遵循已经走过的道路,同时避免先前的陷阱。EnChargeAI专注于用于感测累积的电容器。Neo的DRAM想法太新,无法确定它是否能取得商业成功。明年应该有机会看看前两者是否能取得进展。如果没有,就回到研究实验室。
然而,如果其中一种或两种方法都能奏效,那么将为推理建立一个新的低功耗标准。西门子EDA高级综合部门项目总监RussKlein表示:“无需移动所有数据和IMC承诺的并行性所带来的节能效果将不仅对人工智能产生巨大影响,而且对任何在大型数据阵列上进行的计算也会产生巨大影响。”
我们还将提供硬数据来显示关于数据移动能力与计算能力的哪种理论是正确的。