Samsung的存内计算 (PIM)

Hacker News Top 新闻

摘要

在2026年Hot Chips会议上,Samsung展示了其存内计算 (PIM) 技术,该技术将MAC单元集成到LPDDR5X芯片中,以利用高内部带宽,从而提升AI工作负载中的计算效率。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/08/29 09:34

# Hot Chips 2026:三星的存内计算技术 来源:https://chipsandcheese.com/p/hot-chips-2026-samsungs-processing 存内计算之所以备受关注多年,是因为在内存芯片内部进行计算能够利用其更高的内部带宽。此外,存内计算还能规避DRAM与传统计算核心之间的长延迟路径。在Hot Chips 2026大会上,三星探讨了其通过PIM(存内计算)技术持续推进该领域的成果。他们在LPDDR5X芯片中实现了MAC(乘加运算)单元,同时保留了芯片与标准内存控制器对接的能力。 [](https://substackcdn.com/image/fetch/$s_!wrBL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb38cdff5-a0de-4ff3-9084-3ea98bfeeccb_1903x1063.png) DRAM芯片内部被划分为多个存储体(bank),每个存储体拥有独立的读写逻辑。在常规DRAM访问中,内存控制器会选中一个存储体,激活其内部行,然后通过列地址选通脉冲(CAS)命令访问数据。带宽受限于芯片的外部DRAM接口。即便内存控制器能同时激活所有存储体,也无法获取所有存储体的全部可用带宽。 [](https://substackcdn.com/image/fetch/$s_!UmEd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff074d3e5-5fe6-45d6-82cb-fb4a0f7f0b0e_1906x1060.png) 三星的LPDDR5X-PIM类似于拥有16个存储体的标准LPDDR5X-9600芯片,但在每个存储体旁都放置了一个PIM模块。这些PIM模块访问其连接的DRAM存储体时,不受芯片外部总线的约束。它们能够协同利用全部16个存储体的内部带宽,总带宽可达614 GB/s。作为对比,常规DRAM访问通常能并行访问两个存储体,带宽上限为76.8 GB/s。 [](https://substackcdn.com/image/fetch/$s_!IQs9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F577407c6-c777-46a0-885c-b65360f7e4f1_1899x1069.png) PIM模块内部由MAC阵列及周围的寄存器文件和控制逻辑组成。一个1024位的指令寄存器文件可容纳多达64条16位指令。4 kbit的源寄存器文件用于存放激活向量,并为MAC阵列提供第一个源操作数。三星设想软件将模型权重加载到DRAM中,因此连接的DRAM模块提供第二个源操作数。模型权重可在MAC运算前进行缩放,缩放因子来自一个2 kbit的缩放寄存器。 [](https://substackcdn.com/image/fetch/$s_!r6mc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33778738-5a01-46e4-a131-c8f53a4e982e_438x321.png) PIM模块的MAC阵列支持多种低精度格式。根据三星演示文稿中的数据,每个PIM模块的MAC阵列在每个数据时钟周期可维持4次INT8或FP8 MAC运算,若不计双倍数据速率,则每个时钟周期可达8次。对于4位输入权重,吞吐量翻倍,使芯片级计算总吞吐量达到2.4 TOPS。 [](https://substackcdn.com/image/fetch/$s_!HRoC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F970d1a1a-4a0e-4e49-94d5-afc936001d33_1897x1051.png) 这个数字并不算高,但使用多颗LPDDR5X芯片的配置将获得更高的聚合吞吐量。例如,八颗LPDDR5X芯片可实现9.6 INT8 TOPS,这大致与Intel Meteor Lake中的NPU相当(https://chipsandcheese.com/p/intel-meteor-lakes-npu)。但这也是一种昂贵的配置,因为八颗16 GB LPDDR5X芯片对应128 GB的系统内存。 LPDDR5X-PIM的一个亮点在于,它在遵循标准LPDDR5X协议的同时,提供了内存标准之外的计算能力。三星通过预留特殊行地址实现了这一点,这些地址类似于MMIO地址。每个通道有一对预定义的行用于模式控制。激活其中一个行将芯片设置为单存储体模式,而另一个则将其设置为多存储体模式。单存储体是常规模式,而多存储体模式则对所有16个存储体应用命令,以利用芯片的内部带宽。 [](https://substackcdn.com/image/fetch/$s_!2Qzy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf302782-e18d-4f80-904b-ad97db301e3e_1900x1060.png) 特殊的每个存储体行会改变读写命令的行为。激活这些特殊行会使读写命令访问PIM寄存器,而非常规DRAM存储体内容(PIM寄存器激活模式)。三星设想了这样一种机器学习用例:软件在芯片处于常规单存储体模式时将模型权重加载到DRAM中。然后,软件切换到多存储体模式,并进入PIM寄存器激活模式。这使得代码能将激活值写入PIM源寄存器,在PIM缩放寄存器中设置缩放因子,并指定填入PIM指令寄存器的操作。 [](https://substackcdn.com/image/fetch/$s_!Mzc7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc82fa45b-83f8-4425-87e7-ccdec0fcd2a1_1576x876.png) 由于芯片处于多存储体模式,每次PIM寄存器的写操作都会广播到所有16个存储体。因此,PIM计算的工作方式类似于一个限制严格的SIMD处理器,其中操作、缩放因子和一个源操作数在所有存储体间都是相同的。三星允许在单存储体模式下写入PIM寄存器,但该功能是为调试目的而设计的。每个DRAM数据包为256位(BL=16)。填充每个源寄存器需要16次写命令。逐个存储体对所有16个存储体执行此操作将需要256次写命令,这使得主机到PIM寄存器的写带宽成为限制因素。三星确实在单存储体模式下允许PIM寄存器访问,但这旨在作为调试功能。 [](https://substackcdn.com/image/fetch/$s_!sZsk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcdda4b4c-2094-44b0-ba4b-765be57a677a_1577x888.png) 初始化PIM寄存器后,软件切换回多存储体模式并发出读命令。这些读命令不读取DRAM内容,而是启动计算,并将结果累积到PIM向量寄存器文件中。随后,写命令指示PIM模块将向量寄存器文件的内容写回DRAM存储体。 [](https://substackcdn.com/image/fetch/$s_!BMnk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F14915cc4-22e3-43c4-a936-9fb7aec1d5f5_1578x881.png) PIM必须处理常规内存控制器可能执行的重排序操作。当代码通过激活存储体来设置PIM时,PIM通常会设置其指令寄存器文件,使指令按顺序访问每个源寄存器元素。例如,第一条指令引用第一个源寄存器元素,第二条指令引用第二个源寄存器元素,以此类推。然而,如果内存控制器对访问进行重排序,这种方式就会失效。三星通过地址对齐模式(AAM)解决了这个问题,该模式使每条指令从正在访问的列地址推断其源寄存器索引。 [](https://substackcdn.com/image/fetch/$s_!bvLm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb478c0e8-8c99-4827-b9e2-eb9613dbb48c_1896x1065.png) 当主机完成存内计算并希望读取结果时,它会将DRAM芯片切换回单存储体模式。然后,常规的DRAM读写将开始正常访问DRAM内容。 [](https://substackcdn.com/image/fetch/$s_!VrNM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F798b0f8f-a522-43c6-bf13-21716f5611ae_1577x893.png) 与使用标准LPDDR5X相比,三星内部在使用LPDDR5X-PIM时实现了巨大的性能提升。该芯片能够与标准内存控制器协同工作的能力令人印象深刻,三星在解决问题的方法上极具创意。 [](https://substackcdn.com/image/fetch/$s_!IhK4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ae02f2d-f9ec-47f4-ac56-a3374732ac72_1585x877.png) 重新利用标准DRAM命令应能简化硬件设计,但软件方面的挑战看起来十分严峻。由于PIM模式改变了DRAM访问命令的含义,软件无法同时使用PIM和执行常规内存访问。这甚至适用于跨线程的情况,因为内存控制器和DRAM芯片并不知道访问是针对哪个线程的。如果一个非PIM线程在另一个线程使用PIM时读取内存,第一个线程可能会导致意外的计算,并将错误结果存入PIM向量寄存器文件。非PIM线程的写入可能导致PIM模块将向量寄存器数据写回到错误的地址。 三星通过让主机在内存中隔离一个PIM区域来处理这个问题。我想不出在不损害内存带宽和PIM性能的情况下,在典型系统中实现此目的的简便方法。硬件通常将地址交错分布在各个通道上,这使得常见的访问模式能够自然地利用这些通道的带宽。PIM使用每个通道的行来控制单/多存储体模式切换,因此放弃交错并将内存通道指定为PIM专用将是创建PIM区域的唯一合理方式。然后,非PIM应用程序将无法利用为PIM保留的通道带宽。PIM代码将错失非PIM通道的带宽和计算资源。后者可能是一个重大问题,因为每芯片的计算吞吐量本身并不高。 即使在隔离了PIM区域之后,多任务处理问题也可能持续存在。如果一个应用程序想要使用PIM并利用多线程,它必须用锁来保护PIM区域访问,以防止一个线程尝试进行PIM计算而另一个线程试图执行常规内存访问的情况。在现代多任务操作系统中,情况会变得更糟,因为多个进程可能会在不知情的情况下尝试使用PIM。除了让操作系统在运行PIM计算代码段时阻塞所有其他线程并禁用中断外,我不确定有什么好的处理方法。无论如何,处理PIM过程中的中断或上下文切换对操作系统来说都像噩梦。抢占一个PIM线程意味着将内存通道退出PIM模式并保存PIM状态。操作系统必须读取每个存储体的指令、源、缩放和向量寄存器文件,并将其保存到某处。只允许单个运行线程且不进行任务切换会牺牲多线程性能,如果代码在PIM计算部分花费时间过长,还可能导致系统响应问题。 PIM计算打破了内存子系统对DRAM行为的预期,因为DRAM可以生成缓存层次结构从未知晓的内存值。缓存也可能通过吸收旨在触发PIM操作的访问来破坏PIM行为。因此,三星建议将PIM内存映射为不可缓存。这存在问题,因为现代CPU和GPU严重依赖缓存来缓解DRAM延迟。在不可缓存内存上的性能会极其缓慢,因为CPU或GPU核心将花费更多时间因等待内存而停顿。 [](https://substackcdn.com/image/fetch/$s_!iB8s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2193b816-a23f-4c68-84d7-e2018dc47125_1336x360.png) 跳过缓存并非唯一的问题。PIM读操作类似于MMIO访问,因为它们会触发影响PIM向量寄存器文件值的计算,而不仅仅是检索数据。CPU还通过在知道加载数据是否真的需要之前就发起加载来缓解内存延迟。分支预测允许CPU在核心确定这些指令是否会被执行之前就发出指令。预取器观察内存访问模式,并尝试在指令请求数据之前将数据加载到缓存中。如果CPU加载了后来发现不需要的数据,这没关系,因为加载通常不会导致程序行为错误。不幸的是,这在PIM中并不成立,因为读操作会触发修改PIM向量寄存器文件内容的计算。 [](https://substackcdn.com/image/fetch/$s_!1hzK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66322357-315e-4d95-a804-bc54ed422333_1302x572.png)是的,这将会很糟糕。 使用PIM区域可能意味着内存访问必须是非推测性的且不可缓存。在没有缓存、预取或乱序执行的情况下运行CPU会严重损害性能。 暂且不论PIM模式的困难,存内计算给软件带来了高层级的挑战。每个PIM块只能快速访问其本地连接的DRAM存储体。所有其他输入数据必须通过DRAM芯片相对受限的外部接口引入。PIM块之间无法直接交换数据,因此如果一个PIM块需要使用另一个PIM块生成的结果,主机必须使用常规DRAM读写来移动数据。 三星的LPDDR5X-PIM理论上可以用于任何服务器、台式机、笔记本电脑甚至移动设备,因为它能够与标准内存控制器协同工作。然而,这并不意味着它能轻松适应典型的硬件和软件范式。PIM模式切换给多任务操作系统带来了难题。在底层修改DRAM内容并为读命令附加副作用会破坏CPU的缓存、预取和乱序执行。 [](https://substackcdn.com/image/fetch/$s_!oJZH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F881d420b-73a8-4b88-971b-44a0a825d574_3953x2632.jpeg)一些内存芯片。不是正确的代际,但价格/GB可能接近。 我认为,除非对整个内存子系统进行修改,否则没有简单的方法来使用存内计算。例如,类似以下的方式可能使软件更容易采用: - 扩展DRAM接口,增加一组计算命令,避免模式切换的复杂性。 - 让内存控制器从缓存一致性的角度充当对等的CPU核心。在使用存内计算命令之前,内存控制器发出针对所有受影响缓存行的读取所有权(RFO)请求。这使得内存控制器能在启动存内计算之前获取任何已修改的数据并将其写回DRAM,确保存内计算结果反映最新的CPU侧写入。然后,内存控制器持有受影响缓存行的所有权,直到存内计算操作完成,让CPU核心无需使无效或绕过缓存即可观察到存内计算结果。 - 添加一组新的CPU指令,如“rep macb”,用于在固定乘数/缩放因子和未定义数值特性下,对内存块执行乘加运算。CPU可以选择是否使用存内计算(如果DRAM支持),或者生成一系列内部操作(如果在已经在缓存中的小数据集上操作)。 有了这

相似文章

内存计算:DRAM 即将能进行数学运算

Hacker News Top

三星在 Hot Chips 2026 上展示了具有集成计算单元的 16 GB LPDDR5X 内存包,提供 614 GB/s 内部带宽,通过克服内存带宽限制显著提升 AI 推理性能。

Hot Chips 2026:三星与HBM基板芯片机遇

Hacker News Top

在Hot Chips 2026上,三星展示了在将HBM基板芯片升级至逻辑节点后,利用其闲置区域的机遇,包括集成存储器控制器以优化PHY面积和功耗等阶段。

Xcena和三星的近内存计算CXL设备

Hacker News Top

Xcena和三星宣布了MX1,这是一款配备3072个用于近内存计算的RISC-V核心的CXL内存扩展设备,旨在解决机器学习工作负载的内存需求,在Hot Chips 2026上发布。

Intel Optane 用于 AI 工作负载

Reddit r/ArtificialInteligence

英特尔已停产的 Optane 持久内存技术在 AI 工作负载中找到了第二春,用户可以利用廉价的二手 Optane 模块,在本地以大约每秒 4 个 token 的速度运行一个 1 万亿参数的模型。文章强调了 Optane 相比 SSD 具有更低的延迟,使其尽管比 DRAM 慢,但依然适用于大型模型推理。

与美光内存副总裁兼总经理的问答

Hacker News Top

美光云内存产品副总裁兼总经理探讨了人工智能需求如何推动内存超级周期,HBM、LPDDR6和PCIe Gen 6 SSD等技术对数据中心架构变得至关重要。