SK海力士和SanDisk发布HBF(高带宽闪存)规范:512 GiB闪存缓存与GPU共封装以解决AI推理内存瓶颈,获得Google和Tenstorrent背书。
HBM已经证明了通过堆叠和共封装存储介质靠近GPU,可以缓解AI计算中的数据移动瓶颈。
现在,SK海力士和闪迪通过HBF正式将类似的方法应用于NAND,将大容量闪存存储放置在各种xPU(包括GPU)旁边,以解决AI推理中的内存墙问题。
最近,两家公司通过OCP发布了《高带宽闪存(HBF)高级Base Die规范,版本0.7.0》。Google和Tenstorrent在规范中被确认为反馈和建议的提供者。
定位于HBM和SSD之间,HBF是位于xPU旁边的大容量闪存存储,由Base Die和主机软件共同管理。
应用范围从静态模型权重扩展到KV Cache、多模型、MoE和Agent工作负载。
NAND在写操作、耐久性和管理方面的物理约束并未被消除。由这些约束产生的复杂性最终被转移到Base Die和加速器的软件栈中。
内存墙问题已从CPU时代持续到当今的数据中心计算系统。当GPU性能改进继续超越内存响应时间时,数据移动日益成为性能瓶颈。
同时,大语言模型规模和上下文长度的增长对更高的内存带宽产生了需求,并显著增加了内存容量需求。
参与AI处理的数据可大致分为两类:一类包括模型输入和由连续处理层生成的中间结果,这些是动态的,通常称为激活;另一类包括定义模型的权重(参数)。
在推理执行期间,模型权重通常保持不变。但其总体积可能远远超过单个处理芯片或其本地缓存能容纳的量。
对于足够大的模型,某些权重可能存储在机架内的SSD或离处理器更远的网络连接存储中。
这创建了一个多层数据路径:非易失性存储提供长期容量,计算所需的权重被纳入DRAM(可能是HBM),然后缓存在处理器端SRAM中。
因此,当首次访问权重时,数据可能需要遍历多个存储级别才能到达处理器。如果该权重后来被从缓存中逐出,随后需要再次访问,则必须再次遍历相同的路径。
HBF背后的概念与导致HBM的思想相似:通过堆叠和共封装将存储介质移近计算单元。
但他们使用的介质和所扮演的角色不同。HBM使用DRAM提供低延迟、高读/写带宽的工作内存;HBF试图利用更大容量的NAND来处理原本存储在SSD或网络存储上的大规模、读密集型数据——例如模型权重——同时保持高聚合读带宽。
在一些系统设计中,预加载到HBF中的模型权重可以绕过传统的DRAM暂存步骤,直接传输到处理器端缓存。虽然这样的设计使缓存和内存管理变得复杂,但它确实节省了从外部存储到DRAM的一些传输开销。
正如Expedera首席科学家兼联合创始人Sharad Chole所描述的,HBF旨在弥合"高带宽访问和大存储容量"之间的差距。这个定位比简单地将HBF描述为更快的SSD或基于闪存的HBM更准确。
OCP规范正式将HBF定义为位于GPU、TPU或其他xPU旁边的非一致性、以内存为中心的闪存设备。其目的是通过在处理器附近添加TB级别的额外内存容量来增强HBM。
因此,HBF既不直接替代HBM,也不仅仅为其添加容量。它在高带宽内存和传统存储之间引入了另一个内存层,使更大比例的模型数据在物理上更靠近计算单元。
Base Die不仅仅是一个被动的互连层。在维持与主机xPU通信的同时,Base Die管理UCIe协议,并控制主机接口和NAND芯片之间的数据移动。
此外,它负责处理主机和NAND命令、ECC编码和解码、错误报告、传输调度、读/写/擦除状态、NAND初始化和TSV冗余映射。
这种分工在HBF和"简单地将闪存芯片放在处理器旁边"之间创造了根本的区别:NAND堆叠提供容量,而Base Die提供使堆叠作为小芯片内存设备所需的控制、接口和可靠性机制。
xPU通过UCIe 3.0连接到HBF,这是一种用于封装内芯片间互连的标准。在UCIe(通用小芯片互连快速)接口之上,AXI被用作通信协议。简单来说,UCIe处理物理层和链路层的基础,而AXI在主机和HBF之间传输读/写操作。
规范提供了UCIe协议层、Flit格式和AXI通道的详细描述。但如果重点仅在于HBF在系统中的作用,关键是它需要一个专用的小芯片接口,在xPU和HBF两侧都有相应的链路层实现——不同于PCIe SSD,它可以连接到现有加速器而无需特殊修改。
单个HBF堆叠可支持多达16个主机通道。每个通道使用专用的UCIe链接并提供对其自身NAND资源的访问。通过一个通道发出的请求无法访问连接到另一个通道的数据。
每个通道也有其自己的连续本地地址空间。Base Die将此本地地址空间映射到物理NAND库、芯片和块。在系统级别,主机软件负责将主机的全局地址映射到可用HBF通道的本地地址空间。
结果不是单个自动统一的闪存池,而是一个通道化的架构,其性能部分取决于主机如何在多个独立资源之间分配数据和请求。
这个区别很重要,因为规范还要求在同一系统中使用HBF和HBM时要分别管理。HBF不会自动成为HBM的相干地址空间的一部分。软件必须决定哪些数据属于哪个内存层,以及数据应如何移动、分区和访问。
规范中提供的参考配置使用16个NAND芯片、每个通道16个库和4 KiB NAND页面,总容量为512 GiB(其中GiB以二进制测量,GB以十进制测量,约550 GB),并允许更高容量的HBF堆叠。
大约3 TB/s的最大带宽目标不是因为单个NAND达到接近HBM的性能,而是通过16个主机通道的汇聚加上多个芯片、库和阵列的并行性。在最大配置下,每个通道使用64位接口,数据通道速率高达32 GT/s。
要真正利用这些并行资源,数据必须分布在足够的通道、芯片和库中,并且主机必须与Base Die保持足够的请求并发,同时Base Die执行相应的调度。
因此,大约3 TB/s更准确地被描述为最大配置的规范目标,而不是来自实际芯片或推理工作负载的测量结果。
即使聚合读带宽进入HBM级别,HBF也不等同于HBM。它们在延迟、写入能力、访问粒度、耐久性和内存语义方面仍有显著差异。
HBF的核心优势是将大容量NAND与高度并行的读取配对,而不是在所有工作负载中实现与DRAM相同的性能。
模型权重可以范围从几个GiB到数十个甚至数百个GiB,必须在令牌生成期间获取,并且在推理期间通常保持不变。与必须持续重写的数据相比,这使它们更适合读优化、高容量的NAND层。
正如内存分析师Jim Handy总结的区别:"训练持续改变模型权重,而推理通常保持它们不变。"
但是,OCP规范分配给HBF的范围超越了静态权重存储。其应用部分包括单个LLM服务、存储和切换多个LLM、专家混合模型、多模态模型、Agent工作负载、AI参数加载和KV Cache读/写。
对于单个模型,规范描述了在所有主机通道上分布模型参数,以便它们可以并行读取。对于多个模型,它提供了两个可能的布局。
将多个模型保存在HBF中也可以减少当活跃模型切换时从外部SSD重新加载整个模型的需要。虽然这不会消除模型切换延迟,但它可以消除传统部署中的单独的SSD到加速器的加载步骤。
对于MoE、多模态和Agent工作负载,HBF上的数据放置可以遵循多模型情况的两个策略:要么将数据分散在所有通道中以追求最大带宽,要么将数据放在指定通道上优先考虑容量分配和工作负载隔离。
在预填充阶段,模型层计算并写入KV Cache;进入解码阶段后,注意力模块读取之前生成的KV Cache,并在生成后续令牌时添加新的缓存内容。
因此,与在推理期间基本保持不变的模型权重不同,KV Cache在推理期间持续增长并经历持续的读/写操作。
规范期望主机理解LLM或AI工作负载的结构,并安排KV Cache数据以优化读/写性能。因此,HBF不仅被定义为参数加载设备,而且被定义为推理运行时期间生成的数据的可能存储目标。
这扩展了HBF的潜在价值,特别是当更长的上下文和Agent工作负载增加内存容量需求时。但它也直接将架构暴露于NAND最薄弱的特性——频繁写入。
NAND闪存的物理结构决定了其读/写访问模式。闪存芯片在内部分为块,每个块进一步细分为页面。
规范使用4 KiB大小的NAND页面并支持4 KiB对齐的突发写入。小于4 KiB的写请求不会立即写入NAND核芯片,而是首先缓存在Base Die中,只有在积累了完整的4 KiB页面后才会进行实际写入。
在NAND块中,HBF需要顺序写入。它不支持对已编程页面的直接随机覆盖。要重写块中的任何数据,直接覆盖是不可能的;必须首先擦除整个块,然后按照规定的页面顺序从头开始重新写入。
这些规则与大的、预定的模型权重布局相对兼容——权重是只写一次、读多次的数据,可以按顺序在完整页面中写入。
但对于动态生成的数据,这是具有挑战性的,因为它们的大小、生命周期和更新模式可能在推理期间的任何时间改变。
对于需要频繁细粒度写入的数据(如KV Cache),规范不声称所有KV Cache工作负载都会在HBF上表现良好;实际性能将取决于主机如何合并小写入、布置KV Cache页面以及避免导致低效NAND块利用的模式。
因为模型权重和KV Cache具有不同的读/写模式,规范指出将它们混合在同一区域可能会降低耐久性和容量利用率。因此,它建议在通道粒度级别进行HBF分区,并提供两个示例策略。
非均匀分区只分配足够的通道来存储活跃模型权重,并将剩余容量分配给KV Cache。
这也表明HBF的数据布局不能完全留给硬件自动完成。主机必须理解工作负载特性,估计权重和KV Cache各自需要多少容量,然后决定为每个分配多少带宽和耐久性预算。
由于每个HBF通道都有独立的地址空间,主机软件还必须将全局地址映射到不同的通道,决定如何交错数据,并分别管理HBF和HBM。
NAND介质本身的维护不完全封装在Base Die中。磨损均衡可以由Base Die执行,或由主机通过区域重新映射控制。
主机可以调整逻辑和物理地址之间的映射,以更均匀地分配编程和擦除操作,但重新映射命令不会自动迁移现有数据。主机必须首先停止相关访问,然后才能将数据重写到新位置。
数据保留和读干扰也需要定期管理。Base Die负责检测和报告NAND状态,而主机可能需要刷新数据、重试读取、隔离失败的容量或等待设备完成恢复操作。
但是,HBF并不将传统SSD控制器处理的所有功能转移到主机软件。Base Die仍然负责NAND命令、ECC、请求调度和错误检测,但数据布局、部分磨损管理和异常恢复需要主机参与。
因此,HBF的职责划分不同于HBM和传统SSD。前者基于DRAM,不面临NAND的管理复杂性;后者虽然也使用NAND,但通常在SSD控制器中处理地址转换、垃圾回收和磨损管理,而上层软件基本上不知道这些过程。
HBF处于不同的状态:Base Die保留了设备端的控制能力,但没有完全封装所有NAND介质管理。为了充分利用其容量和并行带宽,xPU主机及其软件必须仍然理解通道、数据布局和部分介质状态。
这是HBF最根本的权衡:它将大容量NAND移近计算,同时需要硬件、固件、运行时软件和工作负载数据布局之间的更紧密协调。