NVIDIA Snapshot 开源:GPU 推理副本秒级拉起,恢复 3.6–42.7 秒,最快 36 倍

> 原文:NVIDIA Developer Blog《Start and Restore GPU Workloads in Seconds with NVIDIA Snapshot》,2026-11-10 发布。本文据原文改写,数据以原文为准。

大模型推理集群里,最贵的往往不是 GPU,而是等它热起来的那几分钟。权重加载、显存分配、torch.compile 编译、CUDA Graph 捕获——一台 B200 从进程拉起到能接流量,冷启动动辄十几分钟。

NVIDIA 11 月 10 日开源的 Snapshot(DSX AI Factory Platform 新组件)想解决的正是这段空窗:把一个已经完全初始化的 GPU 工作负载(CPU 内存 + GPU 显存一起)打成可移植产物,在同型号同驱动的任何节点上直接”复活”,跳过权重加载、编译和图捕获。

一句话结论:8 到 36 倍的启动加速

官方在 NVIDIA B200 + VAST(NFS)存储、驱动 615.71.09 的同一套软硬件栈上,用 vLLM 0.31.0、SGLang 0.5.21、TensorRT-LLM 1.3.0 三个引擎、从 6 亿参数到 8 卡 MoE 的完整配置矩阵测了一遍:

指标 数值
恢复耗时(全部配置) 3.6 – 42.7 秒
相对冷启动加速比 8× – 36×
冷启动耗时(8 卡 MoE) 6 – 19 分钟
检查点体积(8 卡 MoE) 约 600 GB – 1 TB
检查点创建耗时 15 秒 – 5.5 分钟(一次性成本)
八卡 MoE 的 GPU 状态恢复 18 – 29 秒
八卡 MoE 的 CRIU CPU 进程恢复 4.2 – 10.8 秒

关键的一点:checkpoint 时间 + restore 时间,在所有测试配置下都短于一次冷启动。也就是说第一次恢复就把本钱赚回来了。

设计合作伙伴的实测更直观:Crusoe 把 GLM-5.3 的 Pod 就绪时间从约 8 分钟压到 31 秒(HGX B300);Saturn Cloud 把 vLLM 启动从 2–8.5 分钟压到 6–34 秒(HGX B300)。

冷启动那几分钟,钱花在哪了

副本冷启动的完整时序(原文图 1)
副本冷启动的完整时序(原文图 1)

图:副本冷启动的六个阶段——准备机器、拉容器镜像、启动推理引擎、加载模型权重、torch.compile 编译、CUDA Graph 捕获(图表源:NVIDIA Developer Blog)

原文把冷启动拆成四段(Table 2),下表节选其中四个八卡 TEP8 配置,这份拆解比结论更有用:

模型 / 引擎 / 并行 Startup Model load Initialization 编译+调优+图捕获 合计
GLM-5.3-NVFP4 / vLLM / TEP8 65.5s 65.9s 48.9s 213.4s 393.7s
GLM-5.3-NVFP4 / SGLang / TEP8 60.8s 74.0s 2.7s 289.3s 426.7s
DeepSeek-V4.1-Flash / vLLM / TEP8 64.0s 184.9s 77.3s 784.5s 1110.7s
DeepSeek-V4-Pro-NVFP4 / SGLang / TEP8 58.8s 87.7s 42.6s 432.5s 621.6s

编译 + 自动调优 + CUDA Graph 捕获常常是最大的一块——DeepSeek-V4.1-Flash 在 vLLM 上光这一步就吃掉 784.5 秒,占总时间七成。Snapshot 恢复时这一整段直接被跳过,所以收益最大的恰恰是那些又大又难编译的模型。

恢复本身也不是黑盒,原文同样拆成四段(Table 3):Agent setup(定位产物、准备 Pod 和 GPU)、CRIU restore(把进程镜像从存储读回主机内存)、CUDA restore(GPU 状态回拷显存)、wake/remap(适配新节点并唤醒引擎)。八卡 MoE 场景下 GPU 状态回拷要 18–29 秒,CRIU 只要 4.2–10.8 秒——瓶颈已经从 CPU 侧转移到显存搬运侧。

vLLM 各模型冷启动与 Snapshot 恢复对比(原文图 2)
vLLM 各模型冷启动与 Snapshot 恢复对比(原文图 2)

图:vLLM 上各模型与并行配置的冷启动 vs Snapshot 恢复对比(图表源:NVIDIA Developer Blog)

SGLang 各模型冷启动与 Snapshot 恢复对比(原文图 3)
SGLang 各模型冷启动与 Snapshot 恢复对比(原文图 3)

图:SGLang 上各模型与并行配置的冷启动 vs Snapshot 恢复对比(图表源:NVIDIA Developer Blog)

TensorRT-LLM 各模型冷启动与 Snapshot 恢复对比(原文图 4)
TensorRT-LLM 各模型冷启动与 Snapshot 恢复对比(原文图 4)

图:TensorRT-LLM 上各模型与并行配置的冷启动 vs Snapshot 恢复对比(图表源:NVIDIA Developer Blog)

用起来有多复杂:两个 CR,一个注解

Snapshot 的操作模型相当克制,全程走 Kubernetes 自定义资源:

  • – Checkpoint:为一个已在运行的 Pod 建一个 PodSnapshot;或者建 SnapshotJob,让 Pod 从模板起来后就绪即打快照。
  • – Restore:给新 Pod 加一个注解 nvidia.com/restore-from,指名从哪个 PodSnapshot 恢复。
  • – 工作负载侧只需一次”握手”:快照前暂停、恢复后继续。

官方仓库直接给了 vLLM、SGLang、TensorRT-LLM 的现成示例。

两个工程细节值得注意:

  1. 1. KV cache 在打快照前会被释放,因此它不在产物里——快照更小、恢复更快,但首次请求仍要重建 KV。
  2. 2. 多卡是一个整体产物。跨多 GPU 的 TP、DP、EP、DCP 并行配置可以按 rank 打成单个快照,大 MoE 模型不用拆成多个碎片。

还有一个容易被忽略的边界:测量口径不包含拉镜像和容器运行时准备。所以”3.6 秒恢复”指的是从 Snapshot 被调用恢复、到引擎重新可服务的时间,不是 Pod Ready——真做容量规划时要把镜像分发的时间另算。

vLLM 恢复耗时按阶段拆分(原文图 5)
vLLM 恢复耗时按阶段拆分(原文图 5)

图:vLLM 恢复耗时的四阶段拆分,柱顶数字为该配置总恢复时间(图表源:NVIDIA Developer Blog)

小夏点评

  1. 1. 这份数据的价值在于它拆了冷启动的四段,而不是只报一个总数。真正被跳过的是”编译 + 自动调优 + 图捕获”这一段,占大模型冷启动的 50%–70%。任何做推理成本核算的人,都该拿这张表重新算一遍自己的启动预算。
  2. 2. 恢复 3.6 秒 vs 42.7 秒的跨度,比均值更有信息量。小模型(Qwen3-0.6B)恢复到个位数秒,大 MoE 卡在 GPU 状态回拷的 18–29 秒——瓶颈清晰地从 CPU 进程侧转移到了显存带宽侧,这也是为什么下一步要盯 GPU-to-GPU 内存搬运。
  3. 3. 国内运维团队落地时的三个坎:一是检查点产物 600GB–1TB 的存储与分发成本(走 NFS 的话,恢复速度直接被存储后端拖住,CRIU 恢复速度”主要由存储后端决定”);二是快 8–36 倍的启动加速会把流量洪峰瞬间放大,HPA 阈值要跟着重调;三是 KV cache 不在快照里,突发流量下第一批请求仍然要吃满延迟。建议先在单一推理服务上做灰度,把镜像分发时间也纳进端到端测量,再谈规模化。

原文链接

  • – NVIDIA Developer Blog:Start and Restore GPU Workloads in Seconds with NVIDIA Snapshot(2026-11-10)

Start and Restore GPU Workloads in Seconds with NVIDIA Snapshot

  • – NVIDIA Snapshot 开源仓库(安装与使用指南)

https://github.com/ai-dynamo/snapshot

  • – NVIDIA Dynamo 用户指南(用 Snapshot 恢复 worker)

https://docs.nvidia.com/dynamo/latest/kubernetes/model-deployment/model-loading/dynamo-snapshot-experimental

您可能还喜欢...

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注