【文章标题】:三星的内存计算技术(PIM)
【文章正文】: 内存计算多年来一直是个诱人的技术方向,因为在内存芯片内部进行计算可以利用其更高的内部带宽。此外,内存计算还能规避DRAM与传统计算核心之间的长延迟路径。在Hot Chips 2026大会上,三星阐述了他们通过PIM(内存内处理)技术持续探索内存计算的进展——他们在LPDDR5X芯片中部署乘法累加(MAC)运算单元的同时,仍保持芯片与标准内存控制器的兼容性。
DRAM芯片内部划分为多个存储体(bank),每个存储体都有独立的读写逻辑。常规DRAM访问时,内存控制器先选定存储体,激活其中的行(row),再通过列选通(CAS)命令访问数据。这种访问方式受限于芯片的外部DRAM接口带宽,即使内存控制器能同时激活所有存储体,也无法充分利用所有存储体的总带宽。
三星的LPDDR5X-PIM芯片与常规LPDDR5X-9600类似拥有16个存储体,但每个存储体都配备了PIM处理模块。这些PIM模块访问所属DRAM存储体时不受外部总线限制,16个模块可协同利用芯片内部614GB/s的总带宽。相比之下,常规DRAM访问仅能并行操作两个存储体,最大带宽仅76.8GB/s。
每个PIM模块内部包含MAC运算树、寄存器组及控制逻辑:1024位的指令寄存器可存储64条16位指令;4kbit的源寄存器用于存放激活向量,为MAC阵列提供首个操作数;模型权重则从连接的DRAM存储体获取(软件需预先加载),并可通过2kbit的缩放寄存器进行数值缩放。
该MAC阵列支持多种低精度格式:根据三星数据,每个PIM模块在每个数据时钟周期可完成4次INT8/FP8乘法累加运算(若不计DDR特性则为8次)。当采用4位权重时吞吐量翻倍,使整颗芯片算力达到2.4TOPS。虽然单芯片算力有限,但多芯片组合可提升总吞吐量——例如8颗16GB芯片组合可提供9.6 INT8 TOPS算力(相当于英特尔Meteor Lake的NPU性能),不过128GB内存配置成本较高。
标准DDR指令实现计算功能 LPDDR5X-PIM的核心创新在于:在完全遵循LPDDR5X协议的前提下,通过预留特殊行地址(类似MMIO地址)来启用计算功能。每个通道设有两行预定义地址分别控制单存储体/多存储体模式——后者可对16个存储体同步下发指令以利用内部带宽。
特定存储体行地址会改变读写命令行为:激活这些特殊行后,读写操作将访问PIM寄存器而非DRAM数据(PIM寄存器激活模式)。三星设想的ML应用流程为:1) 单存储体模式下加载模型权重至DRAM;2) 切换至多存储体模式并进入PIM寄存器激活模式;3) 向源寄存器写入激活值、设置缩放系数、填充指令寄存器。
多存储体模式下所有PIM寄存器写入会广播至16个存储体,使PIM计算如同受约束的SIMD处理器(所有存储体共享操作符、缩放因子和源操作数)。虽然单存储体模式也支持PIM寄存器写入(用于调试),但因每个DRAM数据包为256位(BL=16),逐个存储体写入需要256条写命令,主机到PIM寄存器的写入带宽将成为瓶颈。
完成PIM寄存器配置后,软件切回多存储体模式发出读命令——这些命令会触发计算并将结果累加至PIM向量寄存器,后续写命令则将结果写回DRAM存储体。PIM技术还需处理…