返回

文章详情

三星的内存计算(PIM)

Hacker News2026年8月29日 06:06

多年来,内存计算一直是一个吸引人的提议,因为在内存芯片内进行计算可以利用其更高的内部带宽。此外,内存计算避免了DRAM与传统计算核心之间漫长的延迟路径。在2026年Hot Chips会议上,三星讨论了他们在内存计算方面的持续追求,特别是他们的PIM(内存计算)倡议。他们在LPDDR5X芯片中实现了MAC单元,同时保留了芯片与标准内存控制器的接口能力。DRAM芯片在内部被划分为多个银行,每个银行都有自己的读写逻辑。在正常的DRAM访问过程中,内存控制器选择一个银行,激活其中的一行,然后通过列访问选通(CAS)命令访问数据。带宽受限于芯片的外部DRAM接口。即使内存控制器能够同时激活所有银行,它也无法获得所有银行可用的完整带宽。三星的LPDDR5X-PIM就像一个具有16个银行的普通LPDDR5X-9600芯片,但在每个银行中放置了一个PIM(内存计算)块。这些PIM块在不受芯片外部总线限制的情况下访问其附加的DRAM银行。它们一起能够利用芯片在所有16个银行上的内部带宽,总带宽达到614 GB/s。相比之下,普通的DRAM访问最多只能同时访问两个银行,且最大只能达到76.8 GB/s。PIM块内部由一个MAC树和周围的寄存器文件及控制逻辑组成。1024位指令寄存器文件最多可以容纳64个16位指令。一个4 Kbit源寄存器文件用于激活向量,并为MAC阵列提供一个源操作数。三星预计软件会将模型权重加载到DRAM中,因此附加的DRAM块提供第二个操作数。在MAC计算之前,可以对模型权重进行缩放,缩放因子来自一个2 Kbit的缩放寄存器。PIM块的MAC阵列支持多种低精度格式。三星的演示数据表明,每个PIM块的MAC数组在数据时钟周期内能够维持四个INT8或FP8的MAC操作,或在不计双倍数据率的情况下每周期八个操作。对于4位输入权重,吞吐量翻倍,使得整个封装的计算吞吐量达到2.4 TOPS。这个数字并不算很高,但对于许多LPDDR5X芯片的实现来说,整体吞吐量会更高。例如,八个LPDDR5X芯片一起将达到9.6 INT8 TOPS,几乎与英特尔Meteor Lake中的NPU相匹配。这也将是一个昂贵的配置,因为八个16 GB的LPDDR5X芯片相当于128 GB的系统内存。LPDDR5X-PIM的一个亮点是它保持在标准的LPDDR5X协议内,同时暴露出不属于内存标准的计算能力。三星通过预留特定的行地址来实现这一点,这些地址在某种程度上类似于MMIO地址。每个通道都有一对预定义行用于模式控制。激活其中一行会将芯片设置为单银行模式,而另一行则将芯片设置为多银行模式。单银行模式是常规模式,而多银行模式在所有16个银行上应用命令,以利用芯片的内部带宽。特定的每银行行会改变读写命令的行为。激活其中一行会使得读写命令访问PIM寄存器,而不是常规的DRAM银行内容(PIM寄存器激活模式)。三星设想了一个机器学习的用例,其中软件在芯片处于正常单银行模式时将模型权重加载到DRAM中。然后,软件切换到多银行模式并进入PIM寄存器激活模式。这使得代码可以将激活值写入PIM源寄存器,将缩放因子设置在PIM缩放寄存器中,并指定填充到PIM指令寄存器中的操作。由于芯片处于多银行模式,每个PIM寄存器的写入被广播到所有16个银行。因此,PIM计算的工作方式就像一个非常受限的SIMD处理器,其中操作、缩放因子和一个源操作数在所有银行中是相同的。三星确实允许在单银行模式下写入PIM寄存器,但该功能是为调试目的而设。每个DRAM数据包为256位(BL=16),填充每个源寄存器需要16个写命令。在每个16个银行中逐个银行进行此操作将意味着256个写命令,这使得主机到PIM寄存器的写入带宽成为限制因素。三星实际上允许在单银行模式下访问PIM寄存器,但这被视为调试功能。在准备好PIM寄存器后,软件切换回多银行模式并发出读命令。与读取DRAM内容不同,这些读命令启动计算,并将结果累计到PIM向量寄存器文件中。然后,写命令指示PIM块将VRF内容写回到DRAM银行中。PIM必须处理正常内存控制器可能执行的重排序。当代码通过激活

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡