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