为什么 SRAM 被视为新型和传统计算架构中的关键元素。
近日,半导体工程与Alphawave Semi首席技术官 Tony Chan Carusone 和Steve Roddy, Quadric首席营销官;Jongsin Yun,西门子 EDA的内存技术专家,坐下来谈论了人工智能和 SRAM 的最新问题。
SE:SRAM 有哪些关键特性使其适合 AI 工作负载?
Yun:SRAM与CMOS逻辑工艺兼容,这使得SRAM在将一种技术迁移到另一种技术时都会跟踪逻辑性能的改进。SRAM 是芯片内本地可用的存储器。因此,它提供即时访问的数据,这就是它在人工智能应用程序中受到青睐的原因。凭借数十年的制造经验,我们了解其大部分潜在问题以及如何最大化其效益。在性能方面,SRAM 是迄今为止我们所知道的性能最高的内存解决方案,使其成为人工智能的首选。
Roddy:SRAM 的数量是任何人工智能处理解决方案的关键要素,它的数量在很大程度上取决于您是在谈论数据中心还是设备,或者是训练还是推理。但我想不出有哪些应用程序在处理元件旁边没有至少大量的 SRAM,用于运行人工智能训练或推理。任何类型的处理器都需要某种形式的 SRAM 作为暂存器、本地存储器、存储中间结果。无论您谈论的 SoC 是否在计算引擎旁边的芯片上具有合理数量的 SRAM,并且您在片外使用 DDR 或 HBM 之类的东西来保存模型的大部分内容,或者是否你说的是一个巨大的训练芯片,里面有数百兆字节的 SRAM。无论哪种情况,您都需要在执行实际计算的乘法累加单元大阵列旁边拥有良好、快速的 SRAM。这只是生活中的一个事实,剩下的问题就是一个平衡的问题。将运行什么样的模型?模型是大还是小?这是高性能机器学习还是低性能、始终在线的机器学习?那么这就变成了一个问题:模型中的大部分激活位于推理期间还是训练期间?某处总有 SRAM。它只是一个基于细节的架构权衡问题。
Chan Carusone:SRAM 对于 AI 至关重要,尤其是嵌入式 SRAM。它具有最高的性能,您可以将其直接与高密度逻辑集成。仅出于这些原因,它就很重要。逻辑的扩展性比 SRAM 更好。因此,SRAM 变得更加重要,并且占用了更大的芯片面积。一些处理器上有大量的 SRAM,这种趋势可能会持续下去,这开始成为整个处理器的重要成本驱动因素。我们希望将尽可能多的计算集成到这些高性能训练引擎上。随着我们的进展,看看如何处理这个问题将会很有趣。您看到的一件事是,这些达到标线极限的大型芯片被分解为多个小芯片,并通过适当的互连使它们能够充当一个大型芯片,从而集成更多的计算和更多的 SRAM。反过来,大量的 SRAM 进一步推动了向基于小芯片的实现的转变。
Roddy:无论是数据中心还是两美元的边缘设备,机器学习都是一个内存管理问题。这不是一个计算问题。归根结底,你要么拥有大量的训练集,并且整天试图在片外和片内来回洗牌,要么你正在迭代推理,你已经得到了一堆权重,你就会得到激活。不同风格的计算实现之间的所有架构差异都可以归结为管理内存以及管理权重和激活流的不同策略,这在很大程度上取决于可用和选择的内存类型。任何芯片架构师都在有效地规划出适合其部署场景的内存层次结构,但在任何场景中,您都必须拥有 SRAM。
SE:内存架构会随着 CXL 采用的扩大而发展吗?
Chan Carusone:一系列新技术可能为计算机架构师提供新的优化机会。CXL 可能就是其中之一。另一个是 HBM,它可以实现密集的集成 DRAM 堆栈。随着 EDA 工具和 IP 变得更容易实现这些类型的解决方案,可能会有一些实现,包括基于小芯片的架构。架构师必须使用各种新的旋钮,这些旋钮可能允许针对不同级别的缓存混合使用不同的内存技术。这为针对特定工作负载定制硬件解决方案创造了良好的机会,而无需从头开始进行完整的新设计。
Yun:CXL就像是PCI Express的进化版。它提供 CPU、GPU 和其他存储器等设备之间的高速通信。它们提供一些缓存共享,因此允许设备之间进行一些通信和共享内存。使用这种解决方案,三星最近建议在 DRAM 内进行近内存计算,这可能会填充 L3 级别之后和主内存级别之后的一些内存层次结构。
Roddy:与四年前相比,我们现在获得了更广泛的模型尺寸动态范围。大型语言模型 (LLM) 已经在数据中心存在了几年,现在开始迁移到边缘。您会看到人们谈论在笔记本电脑上运行 70 亿个参数的模型。在这种情况下,您希望将生成能力融入到您的 Microsoft 产品中。例如,当你被困在飞机上时,你无法访问云端,但你希望能够运行一个大模型。两四年前还不是这样,甚至人们在云端运行的模型也没有这些700亿到1000亿参数的模型那么大。
SE:这有什么影响?
Roddy:它对系统中的内存总量以及在处理元素的“前门”暂存权重和激活的策略都有着巨大的影响。例如,在我们工作的设备领域,设备上或片上更大的 SRAM 的集成度要高得多。
然后是接口,无论是 DDR、HBM 还是 CXL 之类的东西,人们试图弄清楚,“好吧,我有冷存储,因为我已经将 100 亿个参数模型存储在某个地方了” ,以及我的高端手机中的所有其他元素。” 我必须将其从冷存储中取出,放入片外“温存储”、DDR、HBM,然后我必须快速将片上和片外的数据移至 SRAM(靠近我的计算元件) ,无论是我们的芯片,还是 NVIDIA 的芯片,等等。同样的层次结构也必须存在。因此,这些接口的速度和功率对于系统的整体功率性能至关重要,而信号策略现在也将成为整体系统性能的关键因素。几年前,人们将机器学习的效率视为硬件问题。如今,它更多地是一个离线提前编译软件的问题。我如何看待这个庞大的模型,我将对其进行多次排序(无论是训练还是推理),以及如何以最智能的方式对数据中的张量进行排序以最小化接口?它已成为编译器挑战、MAC 效率挑战。所有利用模拟计算或内存计算构建系统的早期尝试,以及所有其他深奥的执行,都半途而废了。人们现在意识到,如果我一遍又一遍地来回移动 1000 亿字节的数据,那就是我需要解决的问题。不是,“我是否使用某种不消耗电力的奇怪预期逻辑来进行 8 x 8 乘法运算?” 归根结底,这只是整个问题的一小部分。
Chan Carusone:如果 SRAM 密度成为一个问题并限制芯片尺寸,那么可能会在内存应驻留的位置方面做出不同的权衡。CXL 等新技术工具的可用性可能会渗透并影响软件的架构和构思方式,以及对于特定应用程序可能最有效的算法。这种相互作用将变得更加有趣,因为这些模型是如此巨大,以至于像这样的正确决策可以对总功耗或模型实施成本产生巨大影响。
SE:SRAM 如何帮助平衡AI和其他系统的低功耗和高性能?
Chan Carusone:简单的答案是,嵌入 SRAM 可以实现快速数据检索并减少计算所需的延迟。它减少了芯片外的需要,芯片通常更耗电。每一笔片外交易的成本都更高。这是在用 SRAM 填充芯片和没有任何剩余空间来执行逻辑之间的权衡。
Roddy:当你沿着逻辑和 SRAM 之间的技术曲线向下移动时,扩展差异与有关管理、功耗和可制造性的其他问题相互作用。例如,有很多人工智能推理或训练架构都依赖于处理元素阵列。你会看到很多数据流类型的架构,很多矩阵计算引擎的数组。
我们在 Quadric 的架构有一个处理元素的二维矩阵,我们将 8 个 MAC、一些 ALU 和内存分块,然后将其平铺和扩展——与人们在具有大量着色器引擎或各种其他引擎的 GPU 中所做的事情没有太大不同。数据流架构。当我们第一次实现我们的架构时,我们做了一个 16 纳米的概念验证芯片。我们选择在每个计算元素旁边放置多少内存是相当简单的。我们在每一个 MAC 和 ALU 的小引擎旁边都有一个 4k 字节的 SRAM,具有相同的逻辑块,组织为 512 x 32 位。当你缩小规模时,突然你会看到 4nm,你会想,让我们用触发器来构建它,因为拥有所有 SRAM 结构的开销并没有像逻辑那样扩展。在 4 纳米,处理器设计人员是否需要思考:“我是否需要在本地计算引擎级别更改整个系统中的资源量?我是否应该增加内存大小以使其成为 SRAM 的有用大小?或者我是否需要从 SRAM 转换为传统的基于触发器的设计?” 但是,如果您谈论的是汽车解决方案,那么这会改变可测试性和适合率方面的方程式。所以这里有很多事情在起作用,这些都是这个能力层次结构的一部分。
解决方案架构师需要了解的整个情况需要大量技能,例如流程技术、效率、内存和编译器。这是一个不平凡的世界,这就是为什么有如此多的投资涌入这一领域。我们都希望这些聊天机器人能够做出奇妙的事情,但目前还不清楚什么是正确的方法。这不是一个成熟的行业,你需要年复一年地进行增量设计。这些系统会在两三年内发生根本性的变化。这就是它令人兴奋的原因——但也很危险。
Chan Carusone:台积电广为人知的 FinFlex 技术可以提供另一种在功率与性能泄漏与面积之间进行权衡的途径。另一个迹象是人们现在谈论的是 8T 细胞而不是 6T 细胞。每个人都在推动这些设计,为不同的应用探索设计空间的不同部分。所有研发投资都说明了这一点的重要性。
Yun:使用触发器作为存储器是个好主意。我们可以更快地读/写,因为寄存器文件的翻转速度比 L1 高速缓存快得多。如果我们使用它,这将是提高性能的最终解决方案。根据我的经验,寄存器文件在处理瞬态缺陷方面比 SRAM 更稳健,因为它具有更强的下拉和上拉性能。如果我们有大量带有微小存储器的内核,并且内核中的这些存储器由寄存器文件组成,那么这是一个非常好的解决方案。我唯一担心的是寄存器文件使用比SRAM更大的晶体管,因此待机泄漏和动态功耗比SRAM高得多。当我们使用寄存器文件时,是否有解决方案来解决额外的功耗?
Roddy:然后你就会遇到寄存器文件分区、时钟门控和断电的问题。这是编译器的挑战,离线提前编译,因此您将知道在任何给定时间点正在使用多少 reg 文件或内存。如果您在银行中构建它,并且可以将其关闭,则可以减轻此类问题,因为对于在机器学习中运行的图表的某些部分,您不需要所有内存。对于其他部分,您确实需要所有内存来启动和关闭电源。我们正在对张量的形状和大小以及张量的局部性进行大量复杂的分析。张量的移动成为一个大型的提前图编译问题,而不是 8 x 8 乘法或浮点乘法的优化。仍然重要的是,上面还有一个更高的杠杆点。通过优化操作顺序,您可以尽早获得更多的优势,而不是在已经安排好之后再优化能效延迟。
全部0条评论
快来发表一下你的评论吧 !