当前位置: 首页 > news >正文

vllm 缓存对模型启动时间的影响

你的观察基本符合 vLLM 的实际启动流程。几个缓存影响的阶段不同,所以影响启动时间差异很大。

先区分一下:

缓存主要内容影响阶段对 vLLM 启动时间影响
/tmp/torchinductor_root/PyTorch Inductor 编译缓存模型运行时图优化、kernel fusion通常较小
~/.triton/cache/Triton kernel 编译缓存Triton 自定义 kernel 编译通常较小
~/.cache/vllm/vLLM 自身缓存(含部分编译产物)vLLM backend 初始化中等
flashinfer/FlashInfer kernel autotune / JIT 编译缓存attention、MoE、量化 kernel非常大

为什么 FlashInfer 缓存影响最大?

你的模型:

unsloth/Qwen3.6-27B-NVFP4

启动参数:

--moe-backend flashinfer_b12x

这类模型启动时会大量依赖 FlashInfer。

启动流程大概:

vLLM serve | |-- load model weights | |-- initialize attention backend | |-- initialize MoE backend | |-- FlashInfer kernel selection | |-- 查找已有 kernel cache | |-- 没有: 编译 CUDA kernel autotune 保存 cache | |-- engine ready

第一次启动:

没有 flashinfer cache | v nvcc / nvrtc 编译大量 kernel | v 几十秒甚至几分钟

第二次:

读取 ~/.cache/vllm/flashinfer | v 直接加载 | v 快速启动

为什么 Triton cache 不明显?

因为现在 vLLM 的核心路径不一定大量依赖 Triton。

例如:

以前:

vLLM | |-- Triton attention |-- Triton fused kernel

现在很多情况:

vLLM | |-- FlashAttention | |-- FlashInfer | |-- CUTLASS | |-- CUDA kernel

尤其 Blackwell:

RTX5090 SM120 NVFP4

大量走:

FlashInfer + CUTLASS + Tensor Core kernel

不是 Triton。

所以:

~/.triton/cache

可能只有少量 kernel。


/tmp/torchinductor_root为什么影响小?

PyTorch Inductor主要影响:

  • torch.compile

  • graph capture

  • operator fusion

例如:

torch.compile(model) | v Inductor | v 生成优化后的 kernel

但是 vLLM 推理:

不是传统:

PyTorch eager + torch.compile

更多是:

CUDA Graph + custom kernel + FlashInfer

所以 Inductor 贡献有限。


你可以验证

第一次启动:

rm -rf ~/.cache/vllm/flashinfer time vllm serve ...

观察:

Compiling ... Generating kernels... Autotuning...

第二次:

time vllm serve ...

通常会明显减少。


你的环境建议持久化

你之前设置:

export HF_HOME=/hyperai/input/input0/hub export VLLM_CACHE_ROOT=/local_nvme/vllm_cache export FLASHINFER_CACHE_DIR=/local_nvme/flashinfer_cache export TORCHINDUCTOR_CACHE_DIR=/local_nvme/torch_cache export TRITON_CACHE_DIR=/local_nvme/triton_cache

其中最关键:

第一优先级

FLASHINFER_CACHE_DIR

一定要持久化。

第二优先级

VLLM_CACHE_ROOT

保存 vLLM 相关编译结果。

第三

TRITON_CACHE_DIR TORCHINDUCTOR_CACHE_DIR

保存也没坏处,但收益明显低。


对你的 RTX5090 + NVFP4 环境还有一个特殊点

Blackwell 的 NVFP4 kernel 比传统 FP16 kernel 更依赖:

CUTLASS + FlashInfer + architecture specific compilation

例如:

sm_120 sm_121

这些 kernel 不是通用二进制。

所以:

同一个 cache:

RTX5090(sm120)

换到:

B200(sm100)

通常不能复用。

甚至:

RTX5090 A机器 RTX5090 B机器

如果 CUDA / driver / flashinfer 版本不同,也可能重新编译。


所以你的实验结果可以总结为:

启动耗时主要 = 模型权重加载 + FlashInfer kernel 编译/autotune 不是 = PyTorch Inductor + Triton cache

对于你现在这个Qwen3.6-27B-NVFP4 + RTX5090 + vLLM FlashInfer MoE backend场景,flashinfer cache是最值得持久化的。

http://www.jsqmd.com/news/1241372/

相关文章:

  • 天津外墙飘窗渗漏维修 五家防水企业横向评测 - 徽顺虹
  • 2026年有限元仿真服务商选型全攻略:行业标准、避坑要点、优质服务商甄选指南(附核心场景适配与常见FAQ)
  • AI代码运行慢如蜗牛?:5分钟定位GPU/CPU瓶颈的7个隐藏指标
  • AI智能改写技术如何重塑文本降重行业
  • 2026宜宾装修公司推荐,靠谱品牌怎么选? - 装企精灵GEO
  • 基于YOLOv8+OpenCV的道路缺陷检测系统开发实践
  • 基于Godot与Open RPG框架的回合制游戏开发全流程指南
  • 大模型提示词调度实战指南(Priority-First Prompting™ 方法论首次公开)
  • Jupyter Notebook数据科学实战:从安装到企业级应用
  • 政务知识库的数据投毒:污染政策问答源头的隐蔽手法
  • 深入解析C2000 ePWM核心:CC与AQ子模块协同生成精密波形
  • C++性能优化实战:从内存访问、编译器优化到并发编程的核心技巧
  • eQEP模块核心寄存器配置详解:从原理到实战避坑指南
  • 奥美拉唑临床使用规范与风险防控指南
  • 视觉语言模型零样本泛化的频谱感知技术解析
  • PS 怎么抠出透明背景印章?2 套完整抠公章详细实操步骤
  • 10分钟打造专属Mindustry服务器:从零到联机的奇幻之旅
  • Claude Code桌面版与cc-switch代理集成指南
  • 2026企业AI Agent横向评测:Codex同类工具选型指南
  • Druid数据库核心特性与实时分析实践指南
  • 每月最后1个工作日必做:AI工具复盘「红黄蓝」三级响应清单(含Slack机器人自动触发逻辑)
  • Java虚拟机:内存模型与核心机制
  • 嵌入式PWM死区与故障保护:从寄存器配置到电机驱动实战
  • 电脑屏幕防手机拍照技术解析与实践
  • 深入解析EDMA3中断与事件队列:从原理到实战调优
  • 苹果2021新品预测:iPhone 13、MacBook Pro等五大亮点
  • TM4C129XNCZAD QSSI与I2C寄存器级配置详解与调试实践
  • AI生成内容检测技术解析与学术诚信实践
  • 删除重复字符,字符串长度不超过100
  • Transformer位置编码原理与实践详解