HiFC: High-Efficiency Flash-Based KV Cache Swapping for Scaling LLM Inference

发表时间: 2025-12 · NeurIPS 2025

原文: https://papers.nips.cc/paper_files/paper/2025/hash/4431224d3762aa655f0aee4eaf04ff16-Abstract-Conference.html

作者/机构:Inho Jeong, Sunghyeon Woo, Sol Namkung, Dongsuk Jeon (Seoul National University, SK hynix, NAVER Cloud)

速读

一句话结论
本文提出了一种无 DRAM 的大模型推理 KV Cache 交换架构 HiFC,通过建立 GPU 与商用 SSD 的直接数据传输通道,在保持与 DRAM 交换方案同等吞吐量的前提下,将长上下文推理的内存扩展成本降低了 4.5 倍。

要解决什么问题
大语言模型在处理长上下文时,自回归解码阶段会产生极大的 KV Cache,极易撑爆 GPU 的高带宽内存(HBM)。现有的主流推理框架(如 vLLM)通常将溢出的 KV Cache 交换到主机的 DRAM 中,但这需要配置海量 DRAM,导致极高的硬件采购成本和持续的功耗开销。为了降本,另一种路线是将其卸载到容量更大、价格更低的 NVMe SSD 上。然而,原有的 SSD 卸载方案(如 FlexGen)存在严重的机制卡点:GPU 缺乏原生的 NVMe 接口,所有读写 I/O 都必须先经过主机 CPU 和 DRAM 作为中转,再穿过 PCIe 总线。这种间接的数据路径受到严重的带宽限制,导致推理吞吐量大幅掉点。此外,推理过程中频繁且零散的非顺序写入会引发严重的写放大效应,不仅进一步拖慢速度,还会急剧加速闪存磨损,导致 SSD 在高负载下迅速报废。

怎么做的
HiFC 的核心思路是彻底绕过主机 CPU 和 DRAM,建立 GPU 到 SSD 的直接、高带宽数据通道,并通过将随机读写转化为顺序读写来榨干闪存性能。它能绕开原有卡点,是因为直接内存访问消除了中转带来的延迟与带宽瓶颈,而顺序写入机制完美契合了闪存的物理特性。该方法由三个关键部件构成:第一,闪存缓存块分配器。它扩展了 vLLM 原有的内存分配器,将固定大小(如 64 个 token)的 KV Cache 块直接映射到 SSD 上。当 GPU 显存告急时,调度器会选中牺牲序列,将其 KV 块直接驱逐到闪存中。第二,感知闪存的块管理算法。为了避免零散写入毁掉 SSD 寿命,该模块采用追加写入策略,强制将驱逐的 KV 块按物理顺序写入商用 SSD 的伪单层单元(pSLC)区域。这种设计避免了复用旧的逻辑地址,将写放大系数压低至 1.02,使设备写入寿命提升了 8 倍。第三,GDS 加速缓存引擎。它利用 GPU Direct Storage 技术执行实际的搬运工作。为了让逻辑上的 KV 块与 SSD 物理上的 4KB 逻辑块地址完美对齐,引擎会预先计算好每个注意力层和键值类型的精确字节偏移量,直接将张量作为 4KB 对齐的缓冲区发起 I/O 调度。此外,HiFC 能在不掉速的情况下完成交换,是因为它利用了流水线调度中的吞吐量缺口来隐藏 I/O 延迟。当深度流水线带来的单 token 延迟 $T_{\mathrm{lat}}$ 导致实际吞吐量低于理想吞吐量时,系统会产生一个停顿预算 $T_{\mathrm{gap}}$:

$$T_{\mathrm{gap}} = ( \mathrm{TPS}_{\mathrm{ideal}} - \mathrm{TPS}_{\mathrm{test}} ) \cdot T_{\mathrm{lat}}$$


只有当单次闪存交换的物理耗时 $T_{\mathrm{swap}}$ 超过这个预算时,即满足以下条件,交换开销才会在端到端性能中显现:

$$T_{\mathrm{swap}} > T_{\mathrm{gap}}$$
由于长上下文和大多路并发场景下 $T_{\mathrm{gap}}$ 足够大,HiFC 的 I/O 延迟被计算过程完美掩盖。

效果如何
实验在两张 80GB 的 NVIDIA A100 GPU 和一块配置了 200GB pSLC 缓存的商用 1TB NVMe Gen4 SSD 上进行。测试模型包括 DeepSeek-R1-Distill-Qwen-32B、Mistral-7B 等,数据集涵盖 Qasper、GovReport 和 NarrativeQA(平均上下文长度最高达 18.4K)。对比基线主要有两个:一是纯 GPU 显存方案(代表无交换的性能上限,但在长文本下会迅速 OOM),二是基于 DRAM 交换的 vLLM 方案(代表当前工业界兼顾性能与高成本的主流路线)。量化结果显示,在各类长上下文任务中,HiFC 的端到端吞吐量与昂贵的 DRAM 基线几乎完全一致(差距在 1% 到 2% 以内)。在 GovReport 数据集、并发批处理大小为 200 的压力测试下,HiFC 依然维持了 182 tokens/s 的吞吐量,甚至略高于 DRAM 基线的 172 tokens/s。在成本方面,替换 128GB DRAM 为 1TB pSLC SSD 后,三年期的内存扩展总成本(包含设备采购与持续功耗)降低了 4.5 倍,功耗下降了 12.8 倍。此外,在初始化 100GB 的超大 KV Cache 时,HiFC 耗时仅 32 秒,比 DRAM 基线快了 2.81 倍。作者也承认了该方法的局限性:在短上下文或对延迟极度敏感的单次请求场景下,闪存的物理访问延迟仍可能拖慢 token 处理速度;在多 GPU 共享同一块 SSD 的拓扑结构中,如果缺乏精细的带宽调度,极易引发 I/O 争用;且维持 SSD 的极致性能需要针对特定文件系统和硬件进行专家级的调优,这增加了实际部署的门槛。

主要贡献

大语言模型(LLM)在长上下文推理过程中通常会产生庞大的键值(KV)缓存,其内存占用量很容易超过GPU上的高带宽内存(HBM)容量。现有的LLM推理框架(如vLLM)通过将KV缓存页交换到主机DRAM来缓解这一内存压力。然而,配置大规模DRAM池的高昂成本使得这种解决方案在经济上缺乏吸引力。尽管相较于DRAM,将数据卸载到固态硬盘(SSD)是一种扩展内存容量的经济高效的方式,但传统框架(如FlexGen)在这一过程中会经历严重的吞吐量下降,因为将SSD流量通过CPU路由到GPU的数据路径受到了严重的带宽限制。

为了克服这些限制,本文提出了HiFC(High-efficiency Flash Cache),这是一种新颖的无DRAM(DRAM-free)交换方案,能够以低延迟和高有效带宽直接访问驻留在SSD中的内存。HiFC将KV页面存储在商用NVMe SSD的伪SLC(pSLC)区域中,在顺序I/O下维持高吞吐量,并将写入耐用性提高了高达$8 \times$。借助GPU Direct Storage(GDS)技术,HiFC实现了SSD与GPU之间的直接数据传输,完全绕过了主机DRAM并缓解了PCIe瓶颈。HiFC采用细粒度的块映射机制,将写入操作限制在高性能的pSLC区域,从而在负载下稳定延迟和吞吐量。实验表明,在NarrativeQA等多种长上下文工作负载下,HiFC实现了与基于DRAM交换相媲美的推理吞吐量,同时在三年周期内将GPU服务器系统的内存扩展成本大幅降低了$4.5 \times$。

图1:HiFC工作流程与性能。 (a) HiFC解码工作流程:(1)–(3) 提示词被分词,并在HBM中为序列分配KV缓存块;(4) 解码产生额外的KV条目;(5) 在HBM内存压力下,调度器选择一个受害者序列,并将其KV缓存从HBM交换到闪存缓存(FC);(6) 释放的GPU KV块立即重新分配给下一个活动序列;(7) 其他序列的解码过程不会被阻塞。(b) 在不断增加的批处理大小下,HiFC与DRAM交换系统的吞吐量和总交换次数比较,表明HiFC实现了与DRAM交换相当的性能。
图1b:吞吐量与交换次数对比

背景知识与设计原则

LLM服务中KV缓存管理的重要性:基于解码器的LLM推理包含预填充(prefill)和解码(decode)两个截然不同的阶段。在预填充阶段,模型并行处理整个输入提示词,在每个自注意力层,所有提示词token的键(key)和值(value)向量被存储下来,称为KV缓存。在解码阶段,模型每次生成一个token,对于每个解码步骤,重用先前token缓存的键和值向量来计算自注意力,从而实现高效的自回归生成,而无需在每一步重新处理整个序列。虽然这种基于缓存的机制显著提高了解码期间的计算效率,但存储KV缓存需要大量内存。具体而言,KV缓存的内存占用与批处理大小、模型的隐藏层大小以及输入序列长度成正比。因此,涉及大批处理大小或长输入上下文的场景会导致过度的内存使用和潜在的内存不足(OOM)故障。例如,为DeepSeekR1模型提供每个请求仅几百个token的服务就可能消耗数百GB的GPU内存。因此,高效的KV缓存管理对于实现可扩展且高吞吐量的LLM推理至关重要。

现有的KV缓存管理技术:早期的LLM服务系统通过为每个请求的最大上下文长度预分配单个连续的GPU缓冲区来管理KV缓存。由于实际序列通常较短,这种方法会遭受严重的内部碎片问题;实证报告显示,只有$20 - 40\%$的保留KV缓存空间包含有用数据,其余均被浪费。为了克服这一限制,出现了两种互补的技术:
* 卸载(Offloading):将模型权重或KV张量移出GPU HBM,存放到较低层级的设备(如主机DRAM或SSD)中,并在那里保留多个解码步骤。例如FlexGen【7, FlexGen: High-throughput generative inference of large language models with limited gpu memory 2023 ICML】将GPU、CPU和NVMe存储视为统一的层级结构,卸载很少使用的层或KV块,并将它们压缩至4位以摊销I/O成本。这允许单个16GB GPU以合理的吞吐量运行175B参数的模型。其代价是当磁盘访问频繁时会导致更高的延迟,这对于交互式工作负载是不可接受的。
* 交换(Swapping):以小页面或序列级块的形式按需驱逐和恢复数据。例如vLLM中的PagedAttention【6, Efficient memory management for large language model serving with pagedattention 2023 SOSP】将每个请求的KV缓存分割成16-128个token的统一块。当HBM填满时,选定的块被临时移动到DRAM,并在请求恢复时立即取回。统一的页面大小将内部和外部碎片率控制在$5\%$以下,并且调度器将交换量限制在HBM缓存大小以内以限制延迟。此外,vLLM将PagedAttention与块级KV虚拟化和BlockTable结合以消除碎片。在解码期间,采用LRU加优先级的策略选择受害者序列,以便在不暂停GPU执行的情况下异步将其交换出到DRAM。预取队列在内核启动前通过单次同步执行换入操作,从而实现流水线式的“运行-换出-换入”设计。

方法细节

无DRAM系统设计的动机:将KV缓存卸载到主机DRAM或SSD是缓解长上下文LLM推理期间GPU内存压力的常见方法。虽然将KV缓存块卸载到主机DRAM可以缓解GPU HBM容量有限的问题,但这种方法会带来高昂的运营成本,并且对于需要大量KV缓存的内存密集型工作负载(如长序列处理或代理AI)仍然不够。或者,将数据卸载到商用NVMe SSD可以降低基础设施成本并提供更好的内存可扩展性,从而支持更大的KV缓存和更长的上下文。然而,这种策略会导致严重的吞吐量下降,因为每次I/O仍必须穿过主机DRAM和PCIe总线。在带宽受限的条件下,这种间接的数据路径会严重损害解码性能。这些限制促使我们设计一种无DRAM的卸载架构,该架构绕过中间内存暂存,实现GPU与SSD之间直接的高带宽数据传输。这种架构避免了现有方法中固有的累积延迟和带宽瓶颈,同时简化了整体系统设计并降低了运营成本。

无DRAM系统设计的挑战:实现无DRAM架构面临几个关键的技术挑战。首先,SSD提供的I/O吞吐量通常低于DRAM,特别是在碎片化或随机访问模式下,这使得在推理期间难以维持高性能。其次,闪存(Flash memory)的耐用性有限;频繁的小规模写入会增加写入放大(WA)并加速设备磨损,从而降低长期可靠性。第三,传统的卸载路径依赖CPU DRAM作为中间缓冲区,这引入了额外的PCIe传输和冗余的内存拷贝,导致延迟增加和资源利用效率低下。

图2:HiFC通过集成FC块分配器扩展了vLLM的块管理器,实现了无需依赖主机DRAM的GPU-SSD直接KV缓存交换。调度器根据序列执行状态管理KV块的放置,基于CUDA的缓存引擎利用GDS在SSD和GPU HBM之间提供优化的数据路径。
图2:HiFC通过集成FC块分配器扩展了vLLM的块管理器,实现了无需依赖主机DRAM的GPU-SSD直接KV缓存交换。调度器根据序列执行状态管理KV块的放置,基于CUDA的缓存引擎利用GDS在SSD和GPU HBM之间提供优化的数据路径。

HiFC架构组件概述:为了解决上述问题,本文提出了HiFC,这是首个在KV缓存管理中消除主机DRAM需求的无DRAM设计。HiFC在不牺牲吞吐量或可靠性的情况下,实现了一个可扩展且经济高效的无DRAM推理栈。HiFC通过三个紧密集成的组件实现这些改进:(1) 用于直接基于SSD分配KV缓存的闪存缓存(FC)块分配器;(2) 旨在最大化闪存存储性能和寿命的闪存感知块管理算法;(3) 用于在GPU和SSD之间高效交换KV缓存的GDS加速缓存引擎。

闪存缓存块分配器(Flash Cache Block Allocator):HiFC通过在现有的GPU和CPU块之外引入FC块来扩展vLLM内存分配器。在解码阶段,当GPU内存耗尽时,现有的KV缓存块会被换出到FC块以释放内存。这些FC块由FC块分配器管理,该分配器应用块追加(block append)策略,在SSD上生成顺序I/O工作负载。所有块都具有固定大小(例如,32–128个token),以保持与vLLM块级调度的兼容性并最小化碎片。

闪存感知的块管理(Flash-Aware Block Management):与DRAM或GPU内存不同,SSD对随机访问和块重用模式高度敏感。为了解决这个问题,FC块分配器采用了一种闪存感知的块分配策略,确保KV块的物理顺序放置,从而减少内部碎片并最小化写入放大(WA)。具体而言,该模块按物理顺序分配被驱逐到闪存的块,并使用简单的追加策略管理它们,避免重用陈旧的逻辑地址。这种顺序访问模式不仅提高了吞吐量,还显著延长了SSD的使用寿命,将WA因子降低至1.02以下(相比之下,传统SSD使用场景中为1.4)。

GPU-闪存缓存交换引擎(GPU–Flash Cache Swapping Engine):为了最大化吞吐量并消除中间缓冲,HiFC利用GDS【15, Nvidia gpudirect storage 2021】将驻留在GPU中的KV张量直接传输到SSD,并附带字节级偏移量以实现高效的I/O调度。为此,将闪存缓存交换功能集成到vLLM缓存引擎中。为了进一步提高I/O效率,HiFC利用了多线程I/O调度(最多16个线程)以及将张量直接重用为4KB对齐的GDS缓冲区。这种设计在SSD的pSLC区域维持了超过$4.7 \mathrm { G i B / s }$的吞吐量,确保了可靠的KV缓存交换操作。

HiFC架构与操作流程:这些技术的结合建立了一个高效且可扩展的无DRAM内存层次结构,在长上下文LLM推理的成本、容量和性能之间取得了平衡。在其核心,HiFC将vLLM中使用的CPU块分配器替换为专用的闪存缓存块分配器,该分配器结合了闪存感知的块管理。这实现了一种动态交换机制:在解码阶段,当GPU内存变得稀缺时,调度器会识别出一个受害者序列组,并指示worker启动换出操作。worker的缓存引擎执行此操作,利用自定义CUDA内核通过GDS将KV缓存数据直接传输到SSD以获得最大吞吐量。一旦回收了足够的GPU内存,调度器就会指示worker将换出的序列组重新换入GPU内存。整个数据流促进了直接的GPU-HiFC KV缓存传输,完全绕过了主机DRAM。

内存扩展成本计算模型:为了评估不同KV缓存存储介质的长期成本效益,基于总拥有成本(TCO)模型使用等式计算3年部署期的内存扩展成本。成本由两部分组成:用于提供存储容量的资本支出(CapEx),以及由持续功耗、数据中心电源使用效率(PUE)和区域电费决定的运营支出(OpEx)。公式如下:

$$ { \mathrm { M e m E x p C o s t } } = { \mathrm { C a p E x } } + \left( { \mathrm { P o w e r } } \times 2 4 \times 3 6 5 \times { \mathrm { Y e a r s } } \times { \mathrm { P U E } } \times { \frac { { \mathrm { E n e r g y C o s t } } } { 1 0 0 0 } } \right) $$

三年期成本对比分析:评估了三种KV缓存存储配置的3年内存扩展成本:DRAM(DDR4)、企业级TLC SSD和HiFC(pSLC SSD)。HiFC配置的资本支出比DRAM减少了$3.6 \times$,功耗降低了$12.8 \times$。这导致总内存扩展成本仅为$136,比基于DRAM的方法低$4.5 \times$。因为直接使用商用SSD的TLC区域会引入性能下降和耐用性降低,从而导致成本效率低下。HiFC通过选择支持pSLC区域的商用SSD并专门在该区域内运行(占选定SSD总容量的$20\%$)来解决此问题。这种方法将驱动器的使用寿命延长了高达$8 \times$并确保了稳定的性能。 ## 实验环境 * **模型架构与参数**:主要采用DeepSeek-R1-Distill-Qwen-32B(固定配置基准测试),同时扩展评估了DeepSeek-Llama-8B、DeepSeek-Qwen-14B和Mistral-7B。 * **数据集名称、规模及用途**:使用LongBench中的多样化数据集,包括Qasper(平均长度3.6k)、GovReport(平均长度8.7k)和NarrativeQA(平均长度18.4k),用于验证在不同上下文长度下的鲁棒性。 * **硬件配置**: * 服务器/CPU:Dell PowerEdge R750xa, 2 $\times$ Intel Xeon Silver 4310。 * GPU:2 $\times$ NVIDIA A100 (80 GiB)。 * 内存:256 GiB DDR4。 * 系统存储:Samsung PM893, 7.68 TB SATA eSSD。 * 闪存缓存(用于HiFC):1 TB NVMe Gen4 SSD (配置为pSLC缓存: 200 GiB)。 * **软件配置**:操作系统为Ubuntu 22.04.5 LTS。基于vLLM v0.6.6框架实现,依赖CUDA Toolkit 12.3, PyTorch 2.5.1, GDS Release 1.8.1.2。 ## 实验结果 1. **性能与KV缓存交换对比实验**: * *实验内容*:在批处理大小为10的情况下,通过逐步增加输入和输出序列长度,比较HiFC和DRAM交换对系统性能的影响。 * *实验结果与分析*:图3(a)显示,随着输入长度增加,预填充阶段产生更多KV缓存,但解码阶段保持活跃的序列减少,导致并发度下降,吞吐量随之下降,交换次数在3k token左右达到峰值。图3(b)表明,增加输出长度会在解码阶段扩展KV缓存,初期允许更高的并发度,但在5k token后,由于交换活动激增,吞吐量逐渐下降。在此高I/O负载条件下,HiFC实现了与DRAM几乎相同的吞吐量,验证了其在维持高吞吐量的同时保持相当延迟的能力(引自Fig 3)。 2. **硬件拓扑的可扩展性实验**: * *实验内容*:在不同GPU与SSD比例(1:1, 2:1, 2:2)下测试HiFC的硬件可扩展性。使用DeepSeek-R1-Distill-Llama-8B,批处理大小200,输入8k,输出1k。 * *实验结果与分析*:表2显示,1:1配置下HiFC性能与GPU+DRAM基线相当。在数据并行(DP)的2:1配置下,性能相较基线提升$2 \times$,未观察到I/O瓶颈。在2:2配置下,不仅保持了$2 \times$的性能增益,同时将缓存请求总容量翻倍。这证实了HiFC能够高效扩展。 3. **跨多样化模型和数据集的鲁棒性实验**: * *实验内容*:在Qasper、GovReport、NarrativeQA数据集上,使用DS-Llama-8B、DS-Qwen-14B、Mistral-7B评估吞吐量。 * *实验结果与分析*:表3显示,HiFC在所有测试模型和数据集上保持了与基于DRAM交换相似的性能。吞吐量差异在$1 - 2\%$以内,证明了HiFC在实际多样化推理环境中的可靠性和效率。 4. **KV交换对吞吐量的影响实验**: * *实验内容*:固定批处理大小为20,上下文长度5k,逐渐增加并发流水线序列数量,观察交换行为。分配给KV缓存的内存为9.1 GiB。 * *实验结果与分析*:图4显示,当并发序列超过8个时,KV缓存占用超过9.1 GiB,触发交换操作。尽管交换次数增加,HiFC和DRAM系统的吞吐量在达到12个序列前持续上升并最终饱和。这表明交换开销被有效吸收,系统变为计算受限而非I/O受限,HiFC并未产生负面性能影响(引自Fig 4)。 5. **KV块管理验证实验**: * *实验内容*:对比不同空闲块分配策略(追加策略与左追加策略)对换出操作期间FC KV块索引分布的影响。 * *实验结果与分析*:图5显示,HiFC提出的追加策略使块呈顺序分配(类似LRU模式),而左追加策略在500次换出后变为高度非顺序的随机I/O模式。表4通过SMART日志验证,HiFC的换出操作实现了1.02的写入放大因子(WAF),比SSD规格(1.40)低$27\%$。这强调了顺序块分配对提高吞吐量和减少闪存磨损的重要性。 6. **块大小对交换延迟隐藏的影响实验**: * *实验内容*:在长上下文工作负载(上下文10k,批处理10)下,比较不同块大小(16到256 tokens)对HiFC和DRAM交换性能的影响。 * *实验结果与分析*:图6(a)显示DRAM的原始交换吞吐量始终是HiFC的两倍以上。图6(b)显示两者产生的交换事件数量完全一致。图6(c)证实,尽管存在原始带宽差距,HiFC的端到端吞吐量与DRAM几乎相同,因为延迟被并发序列执行有效摊销。64个token的块大小是平衡交换效率和碎片的最佳选择(引自Fig 6)。 7. **I/O吞吐量对比实验**: * *实验内容*:使用gdsio工具评估不同I/O类型和LBA范围对SSD性能的影响。 * *实验结果与分析*:表5显示,pSLC区域内的顺序读写提供一致的高吞吐量(约4.7-4.9 GiB/s),而随机写入因垃圾回收等内部机制显著变慢(1.617 GiB/s)。当写入超出pSLC容量时,性能也会大幅下降。这证明将KV缓存访问结构化为顺序I/O是实现高性能闪存交换的关键。 8. **KV缓存初始化的可扩展性实验**: * *实验内容*:对比HiFC和DRAM在不同KV缓存大小(10 GiB至100 GiB)下的LLM会话初始化时间。 * *实验结果与分析*:表6显示,无论缓存大小如何,HiFC的初始化延迟始终保持在32-34秒左右。相反,DRAM的初始化时间随缓存大小显著增加,在100 GiB时达到90秒(HiFC实现了$2.81 \times$的加速)。这是因为HiFC直接使用预生成的闪存缓存文件,而DRAM每次初始化都必须为每个KV块分配张量。

结论

本文介绍了HiFC,这是一种新颖的无DRAM架构,旨在为大上下文LLM推理高效地提供KV缓存内存扩展。HiFC将传统的基于DRAM的交换替换为支持GDS的SSD(利用其伪SLC区域),从而创建了直接的GPU到SSD数据传输路径,消除了中间主机内存瓶颈。实验证明,HiFC保持了与传统DRAM交换方法相媲美的推理吞吐量。此外,广泛的验证确认这一优势在多样化的模型、数据集乃至多GPU扩展场景中均成立,突显了HiFC的鲁棒性和普遍适用性。对于长上下文和多批处理场景,vLLM的序列流水线调度器与HiFC优化的闪存缓存协同工作,有效管理KV缓存交换并最小化开销。同时,用1 TiB pSLC配置的SSD替代$128 \mathrm { G i B }$的DRAM,使三年期内存扩展成本降低了约五倍。总而言之,HiFC为可扩展的LLM推理提供了一条经济可行且高效的途径,尤其在大上下文和大批量推理场景中大有裨益。未来的工作计划探索混合闪存-DRAM缓存方案,以在各种工作负载下保持稳定的性能。 ## 附录 **与InstInfer的比较**:虽然HiFC和InstInfer【13】都致力于超越DRAM扩展KV缓存,但它们基于根本不同的设计原则。InstInfer是一种硬件专用解决方案,依赖计算存储驱动器(CSD)执行存储内注意力处理以缓解PCIe瓶颈。相反,HiFC是专为广泛采用而设计的通用软件解决方案,在vLLM框架内利用商用NVMe SSD和GPU。 * **成本与可访问性**:HiFC使用现成的NVMe SSD(例如Gen4 1TB约$136),而InstInfer需要专用的CSD(如二手SmartSSD 4TB约$2,526)。这使得HiFC成为大规模部署更经济的选择(表7)。 * **延迟与吞吐量优化**:HiFC侧重于通过vLLM的流水线感知调度隐藏I/O延迟,并使用GDS最大化带宽。InstInfer则利用CSD的计算能力直接在存储设备上处理注意力机制。操作上的关键区别在于,HiFC仅在HBM耗尽时交换KV块,而InstInfer将整个KV缓存驻留在CSD中(表8)。 * **系统兼容性与通用性**:HiFC作为软件级解决方案,无缝集成到vLLM中,兼容任何支持GDS的GPU和NVMe SSD。InstInfer依赖硬件,需要修改版的FlexGen框架和特定驱动程序(表9)。 **与其他卸载系统的比较(AttentionStore和Mooncake)**:AttentionStore【36】提出了针对多轮对话工作负载优化的DRAM/SSD缓存层级,使用DRAM作为主缓存以最小化SSD访问延迟。Mooncake【27】引入了解耦架构,用于跨集群共享KV缓存,主要针对大批量离线推理。相反,HiFC设计为无DRAM的在线推理解决方案,利用GDS最大化I/O带宽,并通过vLLM调度器隐藏I/O延迟(表10)。 **确定闪存缓存字节偏移量**:为了支持追加分配策略并实现顺序I/O,FC块必须与SSD物理4KB LBA格式对齐。HiFC预计算并存储针对每一层的KV类型特定偏移量查找表,将其直接传递给GDS API。 * **计算公式**:单块大小(字节)为 ${ \mathsf { b l o c k _ s i z e _ b y t e s } } = H \times S \times D \times T$。层偏移量为 $l \times ( 2 \times B \times \mathrm { b l o c k _ s i z e _ b y t e s } )$。层内Key区域偏移量为 $k \times ( B \times { \mathrm { b l o c k } } _ { - } { \mathrm { s i z e } _ { - } { \mathrm { b y t e s } } } )$(其中k=0),Value区域偏移量为 $v \times ( B \times { \mathrm { b l o c k } } _ { - } { \mathrm { s i z e } _ { - } { \mathrm { b y t e s } } } )$(其中v=1)。某层的总字节绝对偏移量为层偏移量加上对应的Key/Value类型偏移量。表11展示了DeepSeek-Qwen-32B模型的具体字节偏移计算示例。 **内存扩展成本分析与未来预测**: * **更新的3年内存扩展成本分析(2025年下半年)**:使用最新市场数据重新评估,DRAM(128 GiB,单价$5.06/GiB)的3年总成本为$729,而HiFC(Gen4 pSLC 1024 GiB,单价$0.10/GiB)为$120。成本差距扩大,DRAM方案目前比HiFC昂贵$6.1 \times$(表12)。 * **内存类型及价格趋势预测(2025-2027)**:预测显示,尽管下一代GPU需要昂贵的DDR5内存,但其降价速度将慢于数据中心SSD。由于HiFC避免了高成本内存,其成本优势将在未来几年变得更加显著(表13)。 **通过pSLC SSD提升总写入字节数(TBW)**: * **理论耐用性提升**:官方TLC模式下,SSD保证750 TBW(假设约3,000 P/E周期)。在pSLC模式下,每个单元仅编程1位,耐用性提升至约30,000 P/E周期。如果仅固定使用200 GiB的逻辑块区域,理论最大TBW为 $30,000 \times 200 \mathrm { G i B } = 6,000 \mathrm { T i B }$。这表明在SLC专属模式下,SSD可承受的写入量是官方保证的$8 \times$(表14)。 * **实证耐用性分析与寿命验证**:在A100 GPU和GovReport数据集的持续负载测试中,每天总KV写入量为1.98 TiB。根据公式 ${ \mathrm { L i f e t i m e } } = \frac { \mathrm { p S L C ~ T B W } } { \mathrm { T o t a l ~ K V ~ W r i t t e n ~ p e r ~ D a y } \times 3 6 5 }$,预测SSD的寿命约为8.3年(表15)。这远超GPU典型的3年服务寿命,确保存储组件不会成为生产环境中的频繁故障点。 **HiFC交换的延迟影响分析**: * **实验设置与结果**:在极高请求负载的延迟敏感场景下(HBM限制为4 GiB),仅使用GPU会导致OOM。与基于DRAM的交换系统相比,HiFC实现了高$5\%$的吞吐量(182 vs. 172 tokens/s)和低$7\%$的平均延迟(5.4s vs. 5.8s)(表19)。这证明HiFC通过GDS路径避免了DRAM争用瓶颈,并通过流水线重叠成功隐藏了交换延迟。 **基于流水线的交换开销感知模型**: * **理论模型**:在深度流水线中,实际吞吐量常低于理想吞吐量,产生吞吐量缺口 $\Delta _ { \mathrm { T P S } } = \mathrm { T P S } _ { \mathrm { i d e a l } } - \mathrm { T P S } _ { \mathrm { t e s t } }$。这转化为流水线可容忍的停顿预算 $T _ { \mathrm { g a p } } = \Delta _ { \mathrm { T P S } } T _ { \mathrm { l a t } }$。闪存交换延迟为 $T _ { \mathrm { s w a p } } = T _ { \mathrm { f i x } } + \frac { N _ { \mathrm { s w a p } } B _ { \mathrm { s i z e } } s _ { \mathrm { t o k } } } { { \mathrm { B W } _ { \mathrm { F l a s h } } } }$。仅当 $T _ { \mathrm { s w a p } } > T _ { \mathrm { g a p } }$ 时,交换开销才会导致性能下降。 * **实证验证**:表20显示,即使一次交换引入了$266 \mathrm { m s }$的闪存延迟,但由于流水线已经存在$2.07 \mathrm { s }$的停顿预算($T _ { \mathrm { g a p } }$),该交换延迟被完全吸收,未观察到额外的性能下降。 **写入放大因子(WAF)分析**: * **WAF计算**:根据SMART日志,HiFC换出请求的主机写入量为232.5 GiB,而实际写入NAND的数据量通过公式 $\mathrm { W A F } = \frac { \mathrm { N A N D ~ W r i t e s } } { \mathrm { H o s t ~ W r i t e s } }$ 计算得出。结果WAF约为1.02(表21)。这比SSD规格中典型的随机读写WAF(1.4)低了$27\%$,表明HiFC生成的大规模顺序写入模式极大地提高了I/O效率并有利于闪存寿命。


参考文献引用汇总
* 【6, Efficient memory management for large language model serving with pagedattention 2023 SOSP】:背景部分引用,说明vLLM中的PagedAttention如何将KV缓存分割为16-128 token的统一块;方法细节及附录中引用,说明将KV缓存卸载到主机DRAM的常规方法。
* 【7, FlexGen: High-throughput generative inference of large language models with limited gpu memory 2023 ICML】:背景部分及方法细节引用,说明FlexGen如何将GPU、CPU和NVMe存储视为统一层级进行KV缓存卸载。
* 【13, Instinfer: In-storage attention offloading for cost-effective long-context llm inference 2024】:方法细节及附录引用,指出通过主机DRAM和PCIe间接访问SSD会导致带宽受限,并在附录中作为主要对比的硬件专用计算存储驱动器(CSD)方案。
* 【15, Nvidia gpudirect storage 2021】:方法细节引用,说明HiFC利用GDS技术将驻留在GPU的KV张量直接传输到SSD以消除中间缓冲。
* 【27, Mooncake: Trading more storage for less computation — a KVCache-centric architecture for serving LLM chatbot 2025 FAST】:附录引用,作为一种用于跨集群共享KV缓存的解耦架构对比系统。
* 【36, Cost-efficient large language model serving for multi-turn conversations ith cachedattention 2024 USENIX ATC】:附录引用,作为针对多轮对话优化的DRAM/SSD缓存层级对比系统。