SGLang 推出 新引擎-模型重启提速约 785 倍
-
SGLang Weight Cache Daemon:CUDA IPC 零拷贝把 LLM 引擎重启压到亚秒级
SGLang 推出 Weight Cache Daemon,GPU 常驻进程缓存已量化已切分的大模型权重,引擎重启经 CUDA IPC 零拷贝映射,Ling-2.6-1T 加载从 495 秒降至 0.63 秒,启动总时长减少 93.9%。更新时间:2026-08-21
一句话结论
2026 年 8 月 21 日,蚂蚁 Ling Infra 团队、阿里巴巴与 SGLang 团队联合发布 Weight Cache Daemon:一个常驻 GPU 进程持有已完成后量化、已 TP 切分的 LLM 大模型权重,引擎重启时通过 CUDA IPC 零拷贝直接映射——基于 Ling-2.6-1T FP8 实测,权重加载从约 495 秒降至约 0.63 秒(约 785 倍加速),端到端引擎启动时间减少 93.9%,主备切换低于 1 秒。这是 SGLang「Fast Engine Recovery Framework」目标冷重启 < 10 秒的第一阶段。问题:LLM 服务重启为什么这么慢
Ling-2.6-1T FP8 实例在 8×H20-3e GPU 上的就绪需约 8.52 分钟,大模型权重存放于 3.5T NVMe SSD,每个 TP rank 需从磁盘读取约 120 GB safetensors。完整启动画像:权重加载约 495 秒(占 93.9%),其余为 tokenizer 初始化约 13 秒、torch distributed 初始化约 5 秒、CUDA graph 捕获约 7.7 秒等。代价有四:P99 尾延迟尖峰(重启期间在途请求失败或无限排队)、可用性下降(分钟级恢复违反 SLA)、运维摩擦(滚动更新与配置变更被重启周期卡住)、GPU 资源浪费(传统主备需为空闲副本独占整套 GPU,硬件成本翻倍)。且每次重启都重复执行完全相同的流程——读盘、反序列化、TP 切分、FP8 量化、权重重排,尽管产出的大模型 GPU 张量是确定性的。
机制:持久化权重缓存守护进程
每块 GPU 运行一个对应其 TP rank 的守护进程,四步工作流:从磁盘加载大模型权重(完整流水线:磁盘 → TP shard → 量化 → repack)
把 model.state_dict() 中的每个参数和 buffer 导出为 CUDA IPC handles
记录 CacheConfig 指纹(模型路径、TP/DP size、量化配置哈希、dtype)
通过 Unix socket 向请求的引擎进程提供 IPC handles
零拷贝的关键是 meta device:引擎在 meta device 上初始化模型(不分配 GPU/CPU 内存),然后用 IPC 映射张量替换每个参数的数据指针——不发生任何数据拷贝,param.data 直接指向守护进程的 GPU 张量。由 process_weights_after_loading() 产生的后量化参数(如 FP8 的 weight_scale)同样被缓存并直接映射,无需重新量化。安全优先的配置校验
任何字段不匹配都会触发完整磁盘重载:model_path+model_arch+revision(不同模型或版本)、tp_size+tp_rank(错误 shard)、pp_size+pp_rank(错误层分配)、dp_size+ep_size(权重分布错误)、quant_method+quant_config_hash(量化不匹配)、dtype(类型不匹配)、device_capability+torch_version(环境戳——权重可干净映射但数值错误的隐患)。IPC allowlist 门控确保 CUDA IPC 零拷贝仅导出原始张量数据时正确:会写入 Python 侧元数据或重排/转置权重的方法(per-tensor FP8、Marlin、AWQ/GPTQ)直接报硬错误而非静默出错数值。当前已验证支持未量化大模型与 block-wise FP8。
三种运行模式:daemon(引擎拉起守护进程,首次启动)、client(连接已运行的守护进程,重启路径,< 1 秒)、off(默认磁盘加载 405–411 秒)。崩溃安全:守护进程崩溃时已运行引擎不受影响(CUDA 引用计数持有 IPC 映射),GPU 显存只在两者都退出后才释放。
性能数据
模型 权重大小 磁盘加载 IPC 零拷贝 加速比
Qwen3-235B FP8 约 235 GB 约 306–327 秒 < 1 秒 约 500 倍
Ling-2.6-1T 约 1 TB 约 405–411 秒 < 1 秒 约 780 倍
超越重启的三个生产场景
多实例权重共享:多个引擎实例零拷贝映射同一组 IPC handles,大模型权重每 GPU 只从磁盘加载和量化一次
优先级混部:高优先级在线服务与低优先级批处理共享同一 GPU 和守护进程,低优先级实例可亚秒级驱逐并重启
主备故障切换:备引擎与主引擎共用守护进程保持热态,主引擎故障时备引擎低于 1 秒接管,无需为空闲副本独占整套 GPU
Fast Engine Recovery 路线图
Phase 1 已完成(本方案):TP + PP、单节点和多节点、每 GPU 零拷贝 CUDA IPC、未量化大模型 + block-wise FP8。后续阶段目标:CUDA graph 序列化 < 3 秒、DeepGEMM JIT warmup < 2 秒、懒加载 tokenizer < 3 秒、NCCL 会话复用 < 2 秒、KV cache 复用、重启跳过 warmup < 1 秒,合计达成 < 10 秒冷重启。公开方向还包括免重载的 RL 在线权重刷新、跨 GPU 与集群共享、KV cache 跨重启恢复。原文信息
作者:Ant Ling Infra Team(蚂蚁集团)、Alibaba、SGLang Team
原文链接:https://www.lmsys.org/blog/2026-08-21-sglang-fast-recovery