NVIDIA 推出 gpu-fractioning 運算子,結合 CUDA 13.4 實現 Kubernetes 記憶體強制 GPU 共享
NVIDIA 發布開源 Kubernetes 運算子 gpu-fractioning,搭配 CUDA 13.4 的新記憶體強制功能,讓多個工作負載能安全共享單一 GPU 並嚴格限制記憶體使用量。
- 本站上線
- 2026/10/28 上午05:15
- 首次報導
- 2026/10/28 上午04:50
- 最早來源發布
- 2026/10/28 上午04:50
背景
許多 AI 工作負載只需要 GPU 的一部分資源,若每個負載都佔用整張 GPU 會造成閒置。NVIDIA GPU 支援多種共享方式:Multi-instance GPU (MIG,將 GPU 硬體隔離為獨立實例);time-slicing(讓多個程序輪流使用但不強制記憶體限制);Multi-Process Service (MPS,允許程序在獨立位址空間並行執行)。CUDA 13.4 引入了新的 time-sharing 模式,能在對應用程式透明的情況下強制執行記憶體邊界,並支援既有的 sm-sharing(計算共享模式)。 官方原文・NVIDIA Developer Blog
發生什麼事
NVIDIA 發布了名為 gpu-fractioning 的開源 Kubernetes 運算子(operator,管理 Kubernetes 資源的軟體元件),託管於 KAI Scheduler 的 GitHub 組織下。該運算子旨在解決 Kubernetes 叢集無法直接利用 CUDA 記憶體強制功能的問題,透過在節點層級部署必要元件,確保工作負載的記憶體限制在容器啟動前即被套用。 官方原文・NVIDIA Developer Blog
重點內容
gpu-fractioning 運算子主要執行三項任務:在每個 GPU 節點上設定並運行 MPS;套用每個工作負載的記憶體限制與計算模式;以及測量每個分數(fraction)而非整張 GPU 的記憶體與計算使用量。它透過 NRI plugin(Node Resource Interface plugin,容器運行時介面插件,用於在容器建立時注入設定)在容器建立時注入 NVIDIA_GPU_MEMORY_REQUEST 和 NVIDIA_GPU_MEMORY_LIMIT 環境變數,並由 NVIDIA 驅動程式強制執行這些限制。若容器超出限制,將如同超出 Kubernetes 記憶體限制一樣被終止。 官方原文・github.com
該系統支援兩種計算共享模式:time-slicing(時間切片,工作負載輪流使用 GPU)為預設模式,每個負載擁有獨立的錯誤域(error domain,錯誤隔離範圍),提供完整的錯誤隔離;sm-sharing(SM 共享,讓 GPU 的串流多處理器 SMs 同時分配給多個工作負載並行執行)則讓所有負載共享單一錯誤域。開發者可透過 Pod 註解(annotation)指定模式,例如 nvidia.com/container.<name>.gpu-compute.mode: "sm-sharing"。KAI Scheduler 確保同一張 GPU 上不會混合使用這兩種模式。 官方原文・NVIDIA Developer Blog
gpu-fractioning 依賴特定的軟體堆疊版本,包括 Kubernetes 1.28+、containerd 2.0+ 或支援 NRI 的 CRI-O、NVIDIA GPU Operator(NVIDIA 提供的 Kubernetes 運算子,負責管理 GPU 驅動程式與容器執行環境)v26.7.0 或更新版本,以及 NVIDIA 驅動程式 r615 或更新版本(對應 CUDA 13.4)。r615 是一個短生命週期的分支,GPU Operator v26.7.1 預設不安裝它,管理員需在安裝時明確指定驅動程式版本。此外,container toolkit(容器工具包,處理容器與 GPU 的互動)需 v1.20.1 以上以支援記憶體限制套用鉤子,device plugin(裝置插件,向 Kubernetes 報告 GPU 資源)需 v0.20.1 以上以支援分數 GPU 分配。 官方原文・github.com
對使用者的意義
KAI Scheduler v0.18.0 起整合了 gpu-fractioning,提供名為 NvFractions 的 GPU 共享模式。開發者可在 Pod YAML 中使用註解聲明記憶體需求,例如 nvidia.com/container.app.gpu-memory.request: "40Gi" 指定保證記憶體,或 gpu-fraction: "0.5" 指定 GPU 比例。系統支援「保證最小值」與「可突發最大值」的範圍設定,讓工作負載在記憶體空閒時能擴展使用量。這使得平台團隊能利用現有基礎設施服務更多工作負載,提高 GPU 利用率。 官方原文・NVIDIA Developer Blog
限制與未定事項
gpu-fractioning 需要 NVIDIA 驅動程式 r615 或更新版本,這並非 GPU Operator 的預設安裝內容,需手動指定。若 GPU Operator 啟用了自身的 NRI plugin(cdi.nriPluginEnabled=true),會刪除 nvidia RuntimeClass(Kubernetes 中指定容器執行環境的類別),管理員需手動擴展 container toolkit 的命名空間允許清單,否則守護進程可能無法存取 GPU。此外,sm-sharing 模式下的工作負載共享錯誤域,一個負載的崩潰可能影響其他負載,建議僅用於信任的負載。 官方原文・github.com
來源:佐證 2 筆,另有背景參考 1 筆
官方原文當事公司或機構自己發布的文件
- NVIDIA Developer Blog · Memory-Enforced GPU Sharing in Kubernetes with NVIDIA CUDA 13.410/28 上午04:50
- github.com · GitHub - kai-scheduler/gpu-fractioning: Node-level enforcement and metrics for fractional GPU allocations made by KAI Scheduler.
背景參考正文沒有引用,只是相關背景,不計入佐證數
這篇對你有用嗎?
留言 0
- 還沒有留言,第一則就是你的。
留言不用登入;名字選填,沒填就顯示「匿名會員」。含連結或疑似廣告的留言會先經編輯確認;檢舉達 3 次的留言會自動隱藏。隱私政策
發現錯誤?
回報會進入待處理清單;核實後更正,並在文中註記更正紀錄。