发表时间: 2026-09 · Blog post by SGLang, Qwen, and NVIDIA teams (lmsys.org)
原文: https://lmsys.org/blog/2026-09-16-nvfp4-kv-cache
作者与机构:SGLang、Qwen 与 NVIDIA 团队(2026年9月16日)
一句话结论 SGLang、Qwen与NVIDIA团队联合推出了基于Blackwell架构的NVFP4(一种结合块级与张量级缩放的4比特浮点格式)KV Cache(键值缓存)系统级方案,在几乎不损失大模型精度的前提下将KV缓存存储体积压缩至FP8的约56%,显著提升了长上下文解码吞吐与高并发智能体任务的处理能力。
要解决什么问题 大语言模型在长上下文与多轮智能体(Agent)场景中极度依赖KV Cache(用于保存历史键和值向量以供后续解码复用)来避免重复计算,但随着序列增长,KV Cache的显存占用与读取带宽成为核心卡点。在容量层面,有限的GPU显存无法持久驻留多轮对话的上下文,导致前缀缓存被频繁淘汰,在后续交互时被迫重新预填充(Prefill)而大幅推高首Token延迟;在带宽层面,自回归解码(Decode)阶段生成的Query极短而需要读取的KV极长,计算完全受限于显存读取带宽。现有工业方案广泛采用FP8量化以将体积缩减至BF16的一半,但若进一步转向传统的4比特量化,由于动态范围受限会引发严重的量化误差,破坏模型的生成精度与推理稳定性,难以在实际部署中落地。
怎么做的 核心思路是利用NVIDIA Blackwell架构原生支持的NVFP4数据格式,通过两级缩放控制局部动态范围以抑制量化误差,并在推理解析框架SGLang中针对不同阶段定制数据流与片上融合算子。NVFP4将数值量化为4比特E2M1浮点数,并结合两级缩放:每16个数值分配一个1字节的FP8(E4M3)块级缩放因子(Block Scale),外加一个张量级FP32全局缩放因子。每16个NVFP4元素仅占8字节数据和1字节块缩放,相对于16字节的FP8基准,其存储开销比例为:
这意味着存储体积降至FP8的约56%,理论容量扩大约1.78倍。在SGLang中,系统将分页KV Cache连接到三条计算路径:第一条是初始预填充(Initial Prefill),无历史缓存的Prompt直接使用投影后的FP8 KV参与注意力计算以避免量化开销,同时将FP8 KV量化为NVFP4异步写入持久缓存;第二条是分块预填充与扩展(Chunked Prefill/Extend),利用层间共享的FP8工作区,将NVFP4历史前缀反量化迁入工作区,与当前Chunk的新KV共同参与注意力计算,并将新KV量化写入缓存;第三条是解码(Decode),也是性能核心,设计了片上即时反量化(On-the-fly Dequantization)解码算子。算子直接把NVFP4缓存与块缩放载入共享内存,在寄存器中借助cvt.rn.bf16x2.e2m1x2硬件指令成对解包并转换至BF16,与缩放因子相乘后直接执行BF16矩阵乘法,完全绕开了将全部KV数据在显存中单独反量化读写的额外往返开销。
效果如何 评测基于单卡与8卡NVIDIA RTX PRO 6000 Blackwell Server Edition(96GB显存)运行,对比基线为工业界代表性的FP8 KV Cache(fp8_e4m3格式,两者模型权重均统一使用FP8),测试模型涵盖Qwen3.5-397B-A17B与Qwen3.8-27B。在精度基准上,Qwen3.5-397B-A17B的NVFP4在GPQA-Diamond和AIME 2025上正确数与FP8完全一致,GSM8K仅少答对1题(准确率下降约0.08个百分点);在较小的Qwen3.8-27B上,NVFP4在GSM8K下降0.31个百分点,GPQA-Diamond下降1.01个百分点,AIME 2025持平于98.33%,SWE-bench Verified解决率从FP8的77.80%微跌至76.20%(下降1.60个百分点)。在单卡Qwen3.8-27B长序列测试中(输入32K、160K、1M tokens,输出1024 tokens),等并发(Iso-concurrency)下减少KV读取使解码吞吐提升约26%–30%;在等显存容量负载(Iso-capacity)下,并发容纳能力大幅提高(32K并发从44提至70,1M从1提至2),峰值解码吞吐分别提升37.37%、57.75%与78.46%。在AgentX多轮智能体基准测试中(8卡TP8),当并发超过12时,FP8因显存不足触发缓存淘汰导致吞吐量断崖式下滑,而NVFP4凭借更高的缓存命中率保持吞吐持续提升。代价与局限在于:由于预填充阶段属于计算受限,等并发下首Token延迟(TTFT)因量化与反量化开销出现0.20%–0.40%的轻微上升;端到端加速受限于长提示词预填充耗时;当前实验将FP32全局缩放固定为1.0而未校准;目前硬件支持仅限SM12x及SM100/SM103架构,支持模型暂限GQA与Sparse MLA,对Sparse GQA等结构的适配仍在进行中。
在现代大语言模型(LLM)推理系统中,键值缓存(KV Cache)是支持长上下文和智能体(Agent)多轮对话的核心组件。然而,随着上下文窗口的急剧扩大,KV 缓存的存储容量与显存读取带宽成为了严重的性能瓶颈。针对这一核心问题,SGLang、Qwen 和 NVIDIA 团队联合提出了基于 NVIDIA Blackwell 架构的 NVFP4 KV Cache 完整推理加速方案。其主要贡献与技术突破包括:
构建三路径协同的 SGLang 系统级执行流:针对不同推理阶段设计了高内聚的 Attention 执行路径:
针对 SM120 深度定制的 Decode Attention 算子:编写了高效的高性能解码算子,加载打包数据与 E4M3 块缩放因子至共享内存(Shared Memory),在寄存器层级利用硬件原生指令 cvt.rn.bf16x2.e2m1x2 进行高速解包与转换,将理论显存数据搬运量降至 FP8 的约 56.25%。
KV 缓存是现代 LLM 推理系统的基石与瓶颈:在基于 Transformer 的现代 LLM 推理系统中,智能体(Agent)会话中多轮对话累积的上下文均以键(Keys)和值(Values)的形式缓存在 GPU 显存内,使得模型能够在后续的自回归解码(Decoding)步骤中复用这些历史表示。每当模型生成一个新的 Token 时,新的 Query Token 必须通过注意力机制检索并关注来自 KV 缓存中对应的所有历史 KV Token。然而,随着上下文长度从数千扩展至数十万乃至上百万,存储与读取这些海量的 KV 数据对 GPU 显存容量与显存读取带宽施加了巨大的压力。
缓解显存压力的两条互补技术路线:面对长上下文对显存施加的严峻压力,工业界与学术界形成了两种互补的应对策略:一是扩展缓存可用的存储层级,二是缩减每个 Token 所需存储的数据量。由于 GPU 显存虽然能够为活跃的 KV 数据提供极高的访问速度,但其绝对物理容量非常有限,服务系统在应对高并发用户或长时间运行的长程会话时,根本无法在 GPU 上永久驻留所有会话的缓存。层次化 KV 缓存技术(Hierarchical KV Caching,HiCache)通过将缓存层级扩展至主机内存(Host Memory)乃至分布式存储介质,使得系统能够在 GPU 显存之外保留海量的长程上下文。而在另一方面,KV 缓存量化(KV Cache Quantization)则从数据表示的密度切入;例如将 K/V 值的存储格式由标准的 BF16 压缩至 FP8,可以直接将内存占用减半,并成倍减少解码阶段从显存读取的字节数。当显存读取带宽成为整体解码吞吐量的瓶颈时,量化能带来显著的性能收益。然而,量化方案的核心权衡在于数值精度:更低的位宽必然引入量化噪声,必须确保该误差严格控制在不破坏模型有用行为的范围之内。虽然 FP8 KV 缓存目前已被广泛部署,但进一步向 4 位(4-bit)推进面临着极其艰巨的挑战,因为 4 位的量化误差远大于 8 位。
NVIDIA Blackwell 架构下的 NVFP4 数据格式及其硬件创新:为了解决超低位宽下的动态范围与量化精度衰减问题,NVIDIA 随其最新的 Blackwell 架构正式推出了 NVFP4 数据格式。NVFP4 格式创新地将 4 位 E2M1 数据格式与双层缩放机制(Two-level scaling)深度结合:该格式针对每连续 16 个数值构成的数据块引入一个独立的 FP8(E4M3)块级缩放因子(Block Scale),同时在整个张量层级引入一个额外的 FP32 全局缩放因子(Tensor-level Scale)。这种细粒度的局部量化控制赋予了该格式远超单一全局缩放因子的动态范围自适应能力,能够精准捕获局部异常值并最大化抑制量化噪声。此外,Blackwell 硬件原生提供了对 NVFP4 格式的高性能指令与计算支持,其极高的计算密度与出色的数值表示灵活性,使其成为实现极低开销 KV 缓存量化的理想底层载体。
图 1. NVFP4 双层缩放(每块与每张量)量化策略
图 2. SGLang 中的 NVFP4 KV 缓存实现架构
路径 1:初始预填充(Initial prefill)数据流与计算逻辑:初始 Prefill 路径专门负责处理尚未命中任何持久化缓存前缀的全新 Prompt。当输入序列经过 QKV 投影(Projection)与旋转位置编码(Positional Encoding)处理后,底层的注意力计算直接运行于当前 Prompt 的 BF16 精度 Query 张量与 FP8 精度的 Key/Value 张量之上。在执行该注意力计算的同时,当前的这组 Key/Value 张量会被同步执行量化操作,从 FP8 转换为 NVFP4 格式,并写入持久化的分页 KV 缓存池中,以便后续的上下文扩展或解码步骤直接复用。在此路径的设计中,尽管系统将量化后的 NVFP4 数据写入了持久化缓存池,但 Prefill 的注意力计算本身直接消费量化前的 FP8 KV 数据,因此在此阶段系统完全不需要从全局 KV 缓存中执行任何数据读取操作,从而兼顾了 Prefill 计算精度与缓存写入流水线。
路径 2:分块预填充与扩展(Chunked prefill / Extend)协同流:分块预填充(Chunked prefill)每次仅推进处理长 Prompt 的某一部分分块,而扩展(Extend)操作则是在现有的上下文历史后追加新的 Token 序列。在这两种工作场景下,注意力计算核心必须同时摄取两个不同的 KV 数据来源:一是已经持久化保存在缓存池中的前缀历史(Cached prefix),二是当前最新输入的分块(Current chunk)。对于已经缓存的前缀部分,SGLang 会搜集对应的离散 NVFP4 条目,执行反量化操作将其还原,并填充至一个预先开辟的 FP8 工作空间缓冲区(FP8 workspace)中。为了严密控制显存峰值开销,该对 Key/Value 工作空间缓冲区是在所有网络层之间全局共享复用的,彻底避免了为每一个网络层都分配一套独立 FP8 工作空间所造成的显存膨胀。而对于当前的新分块,其执行路径则有所不同:在经过 QKV 投影后,当前分块的 KV 数据会直接拷贝至该 FP8 工作空间中,随后注意力算子直接在 FP8 工作空间内整合完毕的完整 KV 视图上执行运算,其执行模式与初始预填充完全一致;与此同时,当前分块的新增 KV 数据也会被量化并追加存储到持久化 NVFP4 缓存池中以备后续解码使用。
路径 3:解码阶段(Decode)的算子内即时反量化设计:在自回归解码(Decode)阶段,注意力执行算子直接从显存中的 NVFP4 KV 缓存池中读取打包的 NVFP4 数据,并在算子内部的原语流水线中即时(On-the-fly)将其反量化至 FP8 乃至 BF16 格式,随后立即将解压后的数值送入下游的矩阵计算逻辑。因此,整个解码流程从根本上剔除了单独设立的反量化算子调用环节。与 Prefill 阶段相比,解码阶段的 Query 序列长度极短(通常仅为 1),而对应的 KV 历史序列长度通常极为庞大。在这种工作负载下,注意力算子的计算完全受限于显存读取带宽(Memory-read-bound)。通过将反量化逻辑内嵌融合在 Attention 算子内部,系统完美规避了先由独立算子完整读取并反量化写回显存、再由 Attention 算子二次读取的昂贵显存往返(Memory round-trip)开销,从而带来了解码吞吐的大幅提升。
cvt.rn.bf16x2.e2m1x2,以极高的单周期吞吐量直接将成对存储的 4-bit E2M1 数值转换还原为一对 BF16 浮点数。与此同时,E4M3 块级缩放因子也被转换至 BF16 精度,核函数使用打包乘法指令(Packed multiply instructions)将这些缩放因子快速施加在成对的值上。随后,注意力矩阵乘法(BMM)算子直接在这些即时还原的 K/V 数据上执行计算,而整体张量级别的全局 K/V 缩放因子则直接作为注意力 BMM 矩阵乘法的全局缩放参数(Scaling parameters)注入计算流程中。图 3. NVFP4 KV 注意力解码算子设计
换而言之,在处理完全相同数量的 K/V 元素时,NVFP4 的打包数据与块缩放因子的物理占用仅为 FP8 存储量的约 56.25%(即压缩掉了 43.75% 的显存消耗)。上述推导排除了可忽略不计的全局 FP32 缩放因子开销以及少量的系统内存池/工作空间开销。这从根本机理上解释了 NVFP4 能够大幅降低 GPU 显存读取流量、突破显存带宽瓶颈并显著提高解码执行效率的底层物理原因。
semianalysis_cc_traces_weka_062126_256k,单次测试窗口持续 1,200 秒,并发度覆盖 1 至 16 进行全量扫描。c8b56b1f44d5c5370f47470ee490da3b04375e1c),运行于支持 SM120 的 CUDA 环境。--prefill-attention-backend flashinfer);Decode 注意力后端采用 TensorRT-LLM MHA 架构(--decode-attention-backend trtllm_mha)。--mem-fraction-static 设定为 0.80 或 0.90;在 1M 极限长上下文测试中,NVFP4 将静态显存比例下调至 0.75,以预留临时 Prefill Workspace 空间;FP8 则维持在 0.90。sglang.test.run_eval、服务基准套件 sglang.benchmark.serving,以及 SemiAnalysis 开源的评测套件 AgentX Harness(Commit:56a0cf70f4c0359454ee4bd15a17770b541a3e3e)。图 4. Qwen3.5-397B-A17B 精度评测基准
图 5. Qwen3.8-27B 精度评测基准
图 6. Qwen3.8-27B 等并发解码性能
图 7. 等容量负载解码性能
图 8. Qwen3.8-27B 在 32K/1K 序列下的帕累托前沿曲线
图 9. Qwen3.8-27B 上通过 TTFT 衡量的 Prefill 性能
图 10. Qwen3.5-397B-A17B 上的 AgentX 性能表现
图 11. Qwen3.5-397B-A17B 上的 AgentX 输入 Token 缓存命中率分析
底层 GPU 硬件架构的适配现状与演进路线:SGLang 当前对 NVFP4 KV 缓存的支持仍处于实验阶段,联合研发团队正在进行持续的高频迭代。在底层 GPU 架构支持方面,目前系统已完整支持 NVIDIA Blackwell 架构中的 SM12x 系列以及 SM100/SM103 系列。针对其他更多 GPU 硬件架构的指令级适配与优化正在按计划加紧开发中,具体的演进规划路线图已在 SGLang 官方仓库的 Issue #29913 中持续对外公开更新。
模型注意力变体架构的拓扑支持范围:在模型网络结构支持方面,当前的底层 Kernel 方案已全面覆盖并适配了分组查询注意力(Grouped-Query Attention,GQA)模型以及稀疏多头隐式注意力(Sparse Multi-Head Latent Attention,Sparse MLA)模型。为了进一步拓展适用范围,开发团队目前正着手将其适配扩展至更多前沿的模型注意力拓扑结构,包括稀疏分组查询注意力(Sparse GQA)等变体。
数值精度的进阶校准与多样化量化配方探索:在数值量化与精度恢复方面,目前的基准评测并未启用 NVFP4 格式所内建的每张量 FP32 全局缩放因子(为了工程实现的简洁性,系统直接将其固定设定为了常数 1.0)。未来通过引入标准严格的离线校准(Calibration)流程,有望极大消除极值带来的数值溢出(Overflow)或下溢(Underflow)现象,从而进一步弥合 NVFP4 与 FP8 KV 缓存之间残余的细微精度差距。此外,团队目前也正在积极实验除原生纯 NVFP4 KV 之外的更多 4-bit 量化改进配方,力求在特定对量化敏感的模型结构上达成更优的精度保持效果。
本文系统性地阐述了在现代开源大语言模型推理框架中引入 NVFP4 KV 缓存的工程动机、系统架构与算子级实现方案。通过在包含 Qwen3.5-397B-A17B 与 Qwen3.8-27B 在内的多个代表性模型以及严苛的任务基准上进行对比评测,充分证明了相比于目前工业界主流采用的 FP8 KV 缓存,NVFP4 KV 能够凭借其近 56% 的显存物理尺寸压缩,从根本上打破长上下文自回归解码阶段的显存读取带宽壁垒,显著提升多并发处理吞吐量。更为关键的是,在复杂的长程多轮 Agentic 任务中,大幅压缩的缓存尺寸使得 GPU 显存能够驻留近 1.78 倍的历史前缀上下文,极大地提升了前缀缓存命中率,彻底消除了由于显存频繁驱逐引发的二次 Prefill 算力雪崩。
未来展望:
测试环境基准参数与模型权重说明:所有的复现测试示例均采用 Qwen/Qwen3.5-397B-A17B-FP8 模型进行,部署于 8 张单卡显存为 96 GB 的 NVIDIA RTX PRO 6000 Blackwell Server Edition GPU 之上,并开启 8 卡张量并行(TP8)。在全部对比实验中,模型自身的权重参数始终固定保持为 FP8 格式不变,仅通过推理配置参数在 fp8_e4m3 与 nvfp4 之间切换 KV 缓存的数据类型。
系统依赖安装与 SGLang 服务端启动指令:运行环境需要具备支持 SM120 架构的 CUDA 工具链。安装 SGLang 框架及其评测依赖套件时,必须严格指定基准测试所锁定的 Git Commit 版本 c8b56b1f44d5c5370f47470ee490da3b04375e1c:
pip install --upgrade "sglang[test] @ git+https://github.com/sgl-project/sglang.git@c8b56b1f44d5c5370f47470ee490da3b04375e1c#subdirectory=python"
随后,执行如下命令启动后端推理服务,启用 FlashInfer 进行 Prefill,采用 TensorRT-LLM 架构的 MHA 执行 Decode,并启用 NVFP4 缓存:
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m sglang.launch_server \
--model-path Qwen/Qwen3.5-397B-A17B-FP8 \
--trust-remote-code --tp-size 8 --kv-cache-dtype nvfp4 \
--prefill-attention-backend flashinfer \
--decode-attention-backend trtllm_mha \
--disable-radix-cache --context-length 262144 \
--mem-fraction-static 0.8 --reasoning-parser qwen3 \
--random-seed 20260826 --watchdog-timeout 3600 \
--host 127.0.0.1 --port 8005
待后台服务完全启动就绪后,在另一终端即可发起下游的精度、吞吐与 Agent 基准评测脚本。此时模型权重及基准测试数据集将由客户端自动完成拉取下载。
sglang.test.run_eval,针对三个数据集分别发起测试。其中 GSM8K 采用 8-shot 配置,评估 1,319 个样例并排除前 8 个演示项;GPQA 重复评测 198 题共 2 轮;AIME 2025 评测全部 30 题共 2 轮:python -m sglang.test.run_eval --base-url http://127.0.0.1:8005 \
--eval-name gsm8k --num-examples 1319 --num-shots 8 \
--num-threads 1319 --max-tokens 10240 --repeat 1 \
--temperature 0.6 --top-p 0.95 --top-k 20
python -m sglang.test.run_eval --base-url http://127.0.0.1:8005 \
--eval-name gpqa --num-examples 198 --num-threads 512 \
--max-tokens 81920 --repeat 2 \
--temperature 0.6 --top-p 0.95 --top-k 20
python -m sglang.test.run_eval --base-url http://127.0.0.1:8005 \
--eval-name aime25 --num-examples 30 --num-threads 512 \
--max-tokens 81920 --repeat 2 \
--temperature 0.6 --top-p 0.95 --top-k 20
sglang.benchmark.serving 发送 128 个并发请求,固定每个请求包含 32,768 个输入 Token 与 1,024 个输出 Token。客户端使用合成随机 Token ID 驱动并在默认情况下忽略 EOS 结束符。评测前先执行 1 轮 Warmup 预热,随后正式发起测试并导出详细性能指标日志:# 测量前的预热执行(Warm up)
python -m sglang.benchmark.serving \
--backend sglang --base-url http://127.0.0.1:8005 \
--model Qwen/Qwen3.5-397B-A17B-FP8 \
--dataset-name random-ids --tokenize-prompt \
--random-input-len 32768 --random-output-len 16 --random-range-ratio 1 \
--num-prompts 1 --max-concurrency 1 --request-rate inf \
--temperature 0 --seed 20260826 --flush-cache
# 正式吞吐量评估
python -m sglang.benchmark.serving \
--backend sglang --base-url http://127.0.0.1:8005 \
--model Qwen/Qwen3.5-397B-A17B-FP8 \
--dataset-name random-ids --tokenize-prompt \
--random-input-len 32768 --random-output-len 1024 --random-range-ratio 1 \
--num-prompts 128 --max-concurrency 32 --request-rate inf \
--temperature 0 --seed 20260826 --flush-cache \
--output-details --output-file nvfp4-32k-1k.jsonl
若需执行 FP8 Baseline 对照实验,仅需在服务端将启动参数替换为 --kv-cache-dtype fp8_e4m3 并重新启动服务执行上述相同压测。此处并发度 32 仅为示例测试点,并非极限峰值吞吐上限。
c8b56b1f44d5c5370f47470ee490da3b04375e1c56a0cf70f4c0359454ee4bd15a17770b541a3e3e需提前下载好模型权重,并确保评测环境有权访问基准数据集 semianalysis_cc_traces_weka_062126_256k。
fp8_e4m3,全量扫描完毕后停止并切换为 nvfp4 重复执行)测试时,必须开启指标汇报与缓存报告特性(--enable-metrics 与 --enable-cache-report):export MODEL_PATH=/path/to/Qwen3.5-397B-A17B-FP8 export KV_DTYPE=fp8_e4m3 # 随后替换为 nvfp4 重复测试 export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m sglang.launch_server \ --model-path "$MODEL_PATH" \ --served-model-name Qwen/Qwen3.5-397B-A17B-FP8 \ --trust-remote-code --tp-size 8 \ --kv-cache-dtype "$KV_DTYPE" \ --prefill-attention-backend flashinfer \ --decode-attention-backend trtllm_mha \ --context-length 262144 --mem-fraction-static 0.8 \ --reasoning-parser qwen3 --random-seed 20260827 \ --watchdog-timeout 3600 \ --enable-metrics --enable-cache-report \ --host 127.0.0.1 --port 8005
启动完毕后通过访问 /server_info 接口,核验 TP8 并行度、KV 数据类型无误,并确保层次化缓存处于禁用、Radix 树前缀缓存(Radix Cache)处于启用状态。
/flush_cache 请求执行冷重置以排除历史干扰,并在评测执行前后导出 Prometheus 监控指标:export MODEL_PATH=/path/to/Qwen3.5-397B-A17B-FP8
export KV_DTYPE=fp8_e4m3 # 需与当前正在运行的服务端保持一致
export AIPERF_DATASET_CONFIGURATION_TIMEOUT=1800
export AIPERF_SERVICE_PROFILE_CONFIGURE_TIMEOUT=1800
export AIPERF_HTTP_KEEPALIVE_TIMEOUT=4
export AIPERF_HTTP_TCP_USER_TIMEOUT=1000000
set -euo pipefail
for C in 1 4 8 12 13 14 16; do
OUT="results/${KV_DTYPE}/c${C}"
mkdir -p "$OUT"
# 在运行每个并发测试点前必须完成服务端的缓存冷重置
RESET=$(curl -fsS -X POST http://127.0.0.1:8005/flush_cache)
[[ "${RESET,,}" == *"cache flushed"* ]] || { echo "$RESET"; exit 1; }
curl -fsS http://127.0.0.1:8005/metrics > "$OUT/metrics_before.prom"
aiperf profile \
--scenario inferencex-agentx-mvp \
--url http://127.0.0.1:8005 \
--model Qwen/Qwen3.5-397B-A17B-FP8 \
--tokenizer "$MODEL_PATH" --endpoint-type chat \
--public-dataset semianalysis_cc_traces_weka_062126_256k \
--concurrency "$C" --benchmark-duration 1200 --streaming \
--system-idle-gap-cap-seconds 10.0 \
--trajectory-start-min-ratio 0.0 --trajectory-start-max-ratio 1.0 \
--cache-bust first_turn_prefix --use-server-token-count \
--extra-inputs ignore_eos:true --random-seed 20260707 \
--burst-phase-starts --ui simple --artifact-dir "$OUT/profile"
curl -fsS http://127.0.0.1:8005/metrics > "$OUT/metrics_after.prom"
# 评测数据导出完毕后,清空服务端残留的任务与显存占用
curl -fsS -X POST http://127.0.0.1:8005/abort_request \
-H 'Content-Type: application/json' -d '{"abort_all":true}'
done
| 引用实体/技术 | 涉及模块/位置 | 原文描述内容与作用 | 来源/链接/文献标识 |
|---|---|---|---|
| Hierarchical KV Caching (HiCache) | 引言 / 背景知识 | 原文描述:"Hierarchical KV Caching (HiCache) extends the cache hierarchy into host memory and distributed storage, allowing the system to retain more context beyond the GPU." 用于指出通过向 Host 内存和分布式存储扩展缓存层级来突破 GPU 显存限制的互补路线。 | SGLang 官方文档:https://docs.sglang.io/docs/advanced_features/hicache |
| KV Cache Quantization | 引言 / 背景知识 | 原文描述:"KV cache quantization addresses the other side of the problem. Storing K/V values in FP8 instead of BF16 roughly halves the data footprint and reduces the bytes read during decoding." 指出低位宽压缩减少显存足迹和解码读取带宽开销的技术路径。 | SGLang 官方文档:https://docs.sglang.io/docs/advanced_features/quantized_kv_cache |
| NVFP4 数据格式 | 引言 / 背景设计 | 原文描述:"NVIDIA introduced the NVFP4 data format with the Blackwell architecture... combines four-bit E2M1 values with two levels of scaling: an FP8 scale for each block of 16 values and an additional FP32 tensor-level scale." 阐述其利用 Blackwell 架构双层缩放实现 4-bit 浮点极低量化误差的机理。 | NVIDIA 官方开发者博客:https://developer.nvidia.com/blog/introducing-nvfp4-for-efficient-and-accurate-low-precision-inference/ |
cvt.rn.bf16x2.e2m1x2 指令 |
方法细节 / Decode Kernel 实现 | 原文描述:"It uses cvt.rn.bf16x2.e2m1x2 to convert pairs of E2M1 values to BF16... Packed multiply instructions apply scaling factors to pairs of values." 详细指出了在 Blackwell SM120 寄存器级实现极速低延迟解包的核心底层硬件原生汇编指令。 |
NVIDIA Blackwell PTX ISA / 硬件架构指令集 |
| FlashInfer | 方法细节 / Prefill 阶段与复现环境 | 原文参数:--prefill-attention-backend flashinfer。系统在 Prefill 计算路径中指定的高性能前向注意力计算后端。 |
SGLang 核心集成后端库 |
| TensorRT-LLM (trtllm_mha) | 方法细节 / Decode 阶段与复现环境 | 原文参数:--decode-attention-backend trtllm_mha。系统在自回归解码阶段指定的高性能多头注意力算子集成实现。 |
NVIDIA TensorRT-LLM 算子库 |
| AgentX Harness | 实验评测 / Agent 场景复现 | 原文描述:采用 SemiAnalysis 提供的专用 Agent 测试框架与脚本,锁定 Git Commit:56a0cf70f4c0359454ee4bd15a17770b541a3e3e。 |
SemiAnalysis 官方开源仓库:https://github.com/SemiAnalysisAI/agentx-harness |
| SGLang 硬件支持路线图 | 补充细节 / 局限性与规划 | 原文描述:"We currently support SM12x and SM100/SM103. Enabling additional architectures is on the way. The roadmap can be found here." | SGLang 社区官方 Issue:https://github.com/sgl-project/sglang/issues/29913 |