AI News HubLIVE
站内改写2 分鐘閱讀

NVIDIA AI 發佈 Dynamo Snapshot:基於 CRIU 的 Kubernetes AI 推理快速啓動系統

NVIDIA 推出 Dynamo Snapshot,利用 CRIU 和 cuda-checkpoint 技術實現 AI 推理工作負載在 Kubernetes 上的快速冷啓動,通過優化將大型模型啓動時間從幾分鐘降低到數秒。

來源MarkTechPost作者: Asif Razzaq

在生產環境中,AI 推理工作負載的需求會隨時間波動,需要彈性擴展。然而,在 Kubernetes 上冷啓動推理工作負載可能需要幾分鐘,期間 GPU 已分配但空閒,無法處理請求。冷啓動包括容器鏡像拉取、模型權重加載、CUDA 內核預熱、CUDA 圖編譯以及服務發現註冊等步驟,這在流量高峯時極易導致 SLA 違規。

為了解決這一問題,NVIDIA AI 研究團隊發佈了 Dynamo Snapshot,一種基於檢查點/恢復機制的快速啓動系統。該系統利用 CRIU(用户空間檢查點/恢復)和 cuda-checkpoint 工具,將推理工作者的完整狀態(包括 GPU 和主機狀態)保存到存儲中,並在需要時快速恢復。檢查點過程先由 cuda-checkpoint 將 GPU 設備狀態轉儲到 CPU 內存,再由 CRIU 將主機進程樹狀態序列化到磁盤。恢復時順序相反:CRIU 先恢復進程樹,cuda-checkpoint 再從 CPU 內存恢復 GPU 狀態。

在 Kubernetes 上,Dynamo Snapshot 通過一個特權 DaemonSet(snapshot-agent)實現,該組件通過 Helm chart 安裝,在每個節點上獨立處理容器的檢查點和恢復。它支持靈活的存儲後端,並且不依賴雲提供商特性。對於多 GPU 和多節點場景(未來版本),團隊引入了靜默/恢復鈎子:工作者在引擎初始化後、分佈式運行時啓動前寫入一個信號文件,檢查點後恢復時直接在該點繼續執行,避免了 TCP 連接和 RDMA 狀態的問題。

Dynamo Snapshot 包含三項關鍵優化:

  1. KV 緩存取消映射:由於檢查點在服務任何請求之前進行,KV 緩存無需保存。通過 CUDA 虛擬內存管理 API 釋放物理內存但保留虛擬地址,將檢查點大小從 190 GiB 降至 6 GiB(Qwen3-0.6B 模型)。
  1. 加速 CRIU 內存恢復:通過並行 memfd 恢復(使用線程池併發處理共享內存緩衝區)和 Linux 原生 AIO(異步 I/O,保持最多 128 個併發讀取),大幅縮短恢復時間。對於 gpt-oss-120b 模型,CRIU 恢復時間從 119 秒降至 15 秒,接近理論極限。
  1. GPU 內存服務(GMS):利用 CUDA VMM API 將模型權重從核心 CRIU 檢查點中分離,允許進程恢復和權重恢復並行執行。GMS 使用 GPUDirect Storage 或對等 GPU RDMA/NVLink 等高速路徑,結合 8 塊本地 NVMe SSD 條帶化,將 gpt-oss-120b 的端到端啓動時間降至 5 秒以下,實現 21 倍加速。

部署方面,Dynamo Snapshot 使用三個 Kubernetes 資源:snapshot-agent DaemonSet、DynamoCheckpoint 自定義資源(定義模型配置的檢查點)和 DynamoGraphDeployment CR(引用檢查點進行恢復)。檢查點身份由模型、後端框架、張量並行度等字段的 SHA256 哈希確定,支持顯式和自動兩種模式。當前僅支持 vLLM,處於有限預覽階段,需要 x86_64 GPU 節點、NVIDIA 驅動 580.xx 以上以及 ReadWriteMany 存儲。