单卡 RTX 5090 跑通 Qwen3-27B NVFP4:262K 上下文实测
Reddit 用户实测在单张 RTX 5090 上以 NVFP4 量化部署 Qwen3-27B,完整 262K 上下文可…
一名 Reddit 用户在 r/LocalLLaMA 板块分享了自己日常使用的部署方案:在单张 NVIDIA GeForce RTX 5090(32 GB 显存)上运行 NVFP4 量化的 Qwen3-27B Uncensored 模型,配合 vLLM 0.27.1 可一次性容纳完整 262,144 token 的上下文窗口,并附带短文解码、128K 驻留、262K 预填等多项实测数据。原文强调「这不是说 262K 跑得快,而是证明它确实能装下并跑完」。
核心性能数据
测试在已预热的 vLLM 服务上进行,单并发、随机 token prompt、--ignore-eos、温度 0。PP(prefill)= accepted 输入 token 数 / TTFT,TG(生成)= 1000 / 平均 TPOT 毫秒,不含预填。
- 1,024 → 512 输出(5 次):TTFT 中位数 116.9 ms,平均 TPOT 12.959 ms,稳态 77.27 tok/s,峰值约 78 tok/s
- 8,192 → 1 输出(5 次):PP 7,005 tok/s,TTFT 中位数 1.167 s
- 32,768 → 1 输出(3 次):PP 6,148 tok/s,TTFT 中位数 5.332 s
- 131,072 → 256 输出(1 次):PP 2,781 tok/s,TTFT 47.128 s,稳态 64.7 tok/s(受 47 s 预填主导)
- 262,000 → 1 输出(1 次):PP 1,578 tok/s,TTFT 166.004 s,成功完成
在 128K 上下文驻留时,TPOT 升至 15.463 ms,生成速度下降约 16.2%。该模型为 64 层混合架构——48 层 Gated DeltaNet 加 16 层 full-attention,因此随上下文增长 PP 下降明显,并非纯线性注意力。
前缀缓存实测
使用一段 36,864 token 共享前缀 + 16 token 唯一后缀 + 1 个输出 token,连续发 5 次请求:
- 冷启动 TTFT:6.437 s
- 4 次缓存命中 TTFT:0.288、0.282、0.296、0.288 s
- 缓存命中中位数:0.288 s
- 冷热加速比:22.3×
作者注明此前记录过 33× 的加速比,但本次复测无法重现 0.20 s 的缓存 TTFT,故以 22.3× 为准。需要警惕的是,启用前缀缓存时,vLLM 会把 Mamba/DeltaNet 混合缓存置于实验性 align 模式;如出现乱码,应优先尝试关闭前缀缓存。
软硬件与显存预算
实测环境:i7-14700K、32 GB RAM、Arch Linux(kernel 7.1.8)、KDE/Wayland 桌面(含 Firefox 与终端);驱动 610.57.04、CUDA Toolkit 13.3.1、Python 3.13.13、vLLM 0.27.1、PyTorch 2.13.0+cu130、Transformers 5.15.0、FlashInfer 0.6.16.post3、Triton 3.7.1、compressed-tensors 0.17.0。vLLM 自动选用 modelopt_fp4 量化、FlashInfer CUTLASS NVFP4 GEMM、FlashInfer 注意力(SM120 native decode)、Triton/FLA GDN 预填内核、Flash Attention 视觉编码器,启用完整与分段 CUDA Graph,关闭推测解码。
显存实测:
- 磁盘 checkpoint:19.18 GiB(safetensors)
- vLLM 加载报告:18.51 GiB
- 手动固定 KV 池:9,150,000,000 bytes ≈ 8.52 GiB
- vLLM 报告的 GPU KV 容量:268,170 tokens
- 262,144 token 并发倍数:1.02×
- VLLM::EngineCore 进程占用:29,322 MiB
- 全卡最终余量:30,532 MiB 已用 / 1,610 MiB 可用
空闲时可用显存波动于 1,610–1,818 MiB。作者强调这不是「无头服务器独占」的余裕,并指出 --gpu-memory-utilization 0.92 仅是启动准入门槛,由于 KV 池已被 --kv-cache-memory-bytes 9150000000 固定,降低该参数并不会缩小 KV 池或上下文窗口;--max-num-seqs 3 也不意味着可同时处理三个 262K 请求,KV 池仅 1.02× 全窗口容量。
复现步骤
模型来自 joshebbs/qwen3.8-27b-uncensored-nvfp4-modelopt(revision e5ff4986938dcd0dd05ab4cce89da1b052be6ce3),由 JonathanColetti/Qwen3.8-27B-Uncensored 经 NVFP4 ModelOpt 导出,保留视觉塔与 MTP head。原文给出完整安装命令(uv 创建 Python 3.13 环境、锁定 cu130 版本的 vLLM 与 PyTorch 轮子)以及 model.safetensors 的 SHA256 哈希,便于精确复现。
