Context
Discord 討論 1-2 台 RTX 5090 主機的多人 GPU 排程架構,涵蓋儲存、容器、排程、追蹤、擴展至 20 人與 Isaac Sim headless 模擬的需求。完整 Q&A 記錄於 2026-04-05-gpu-scheduling-small-team-vla-3dgs。
Key Insights
-
simple-gpu-scheduler已棄坑:最後更新 2019 年(v0.1.4),不適合作為團隊基礎設施,只適合個人實驗。 -
Isaac Lab 官方支援 SLURM:NVIDIA 的 Isaac Lab Cluster Guide 明確列出 SLURM 作為 cluster 部署路徑,用 Singularity/Apptainer 容器跑 Isaac Sim headless,
--nvflag 直接使用 host NVIDIA driver。這讓「訓練 + 模擬」統一在 SLURM 架構下成為有官方背書的選擇。 -
Apptainer 是 Docker 的 HPC 版:功能等同 Docker,但不需要 root 權限,可直接把 Docker image 轉成
.sif格式。Docker 在多人共用 GPU 主機上有資安問題(需要 root daemon),Apptainer 解決了這個問題。2021 年從 Singularity fork 出來,現在是 Linux Foundation 專案。 -
RTX 5090 沒有 MIG:MIG(硬體 GPU 分割)只有 A100/H100 資料中心 GPU 才有。消費級 GPU 要共用需要用 CUDA MPS(軟體層共享),但 VRAM 沒有隔離,兩個 job 加起來超過 32GB 就 OOM。實務上排隊比共用更安全。
-
SLURM 從 5 人到 20 人不需要換工具:直接加 compute node,設定 per-user GPU quota 和 priority 即可。Kubernetes 對這個規模的純訓練/模擬工作負載是 overkill。
-
MLflow 是純 HTTP client-server:只需設
MLFLOW_TRACKING_URI環境變數,任何機器(筆電、GPU server、CI)都能記錄到同一個 server,程式碼零改動。網路連通推薦 Tailscale(不需開 public port)。 -
RL 訓練的 experiment tracking 選擇:MLflow 對 RL 夠用但 UI 基本;W&B 是 RL 體驗最好的選項(Isaac Lab / SB3 / RLlib 原生整合),但 SaaS 為主;Aim 是完全開源自架的 W&B 替代品。實務上常見 TensorBoard(即時監控)+ MLflow(存 checkpoint 和最終結果)並用,不用二選一。
-
GitLab CI + SLURM 的職責分界:CI 負責程式碼 lint、unit test、smoke test(幾分鐘的小 job),完整訓練(幾小時到幾天)幾乎都是研究員手動
sbatch提交,因為要跑什麼 config 本來就需要人決定。整合方式:GitLab runner 裝在 SLURM head node 上,.gitlab-ci.yml呼叫sbatch --wait。 -
沒有排程器的多人共用 server 五個潛在問題:(1) GPU 搶占導致 OOM crash;(2) 無法識別 GPU 被誰佔用;(3) 磁碟空間無配額限制;(4) CUDA 環境版本衝突;(5) 無 audit trail。最低限度緩解:
CUDA_VISIBLE_DEVICES手動分配 +gpustat監控,適合 2-3 人短期過渡。 -
SLURM cgroup 隔離防止搶占:SLURM 是唯一能分配 GPU 的入口,沒透過 SLURM 提交的 process 拿不到 GPU。Web UI 按規模選擇:slurm-web(最輕量,只看 queue)→ Open OnDemand(學術界標準,可提交 job 和開 terminal)→ Grafana + prometheus-slurm-exporter(監控導向,10 人以上才值得)。