AI服务器GPU算力调度怎么配置才能让多任务公平排队

多个人或任务同时用一台 AI 服务器时,GPU 算力调度解决的是“谁先用、用多少、排队多久”的问题。
如果只是把任务都丢到同一张卡上,显存大的任务会挤掉小任务,训练任务也可能被推理请求拖慢。
下面按“先判断硬件支持哪种隔离方式,再配置排队和限额,最后验证”的顺序说明。

先确认显卡和驱动支持哪种调度粒度

GPU 算力调度不是所有卡都支持同一套方案。
NVIDIA 的 MIG(Multi-Instance GPU)能把一张物理卡切成多个独立实例,适合 A100、H100 等数据中心卡;
消费级卡通常不支持 MIG。
如果显卡不支持 MIG,就只能靠 Slurm、Kubernetes 这类调度器做整卡分配和排队,不能真正切分算力。

登录 GPU 节点后先查两件事:

nvidia-smi -L
nvidia-smi --query-gpu=name,memory.total,mig.mode.current --format=csv

如果输出里 mig.mode.current 显示 N/A,说明当前驱动或显卡不支持 MIG,后续不要按 MIG 步骤操作。
如果显示 Disabled,说明支持但未开启,可以继续。

用 MIG 把单卡切成多个算力实例

MIG 适合需要硬隔离的场景,比如一个团队跑小模型推理,另一个团队跑微调,彼此不能抢显存。
开启前要确认没有正在运行的任务,因为切换 MIG 模式会影响整卡。

sudo nvidia-smi -mig 1
nvidia-smi mig -cgi 1g.10gb,1g.10gb,1g.10gb -C
nvidia-smi mig -lgi

上面命令把一张卡切成三个 1g.10gb 实例,具体可用的 profile 要用 nvidia-smi mig -lgip 查看,不同型号支持的比例不同,不要照抄数字。
创建后,每个实例会以独立的 GPU UUID 出现,启动任务时通过 CUDA_VISIBLE_DEVICES 指定对应 UUID,而不是卡号。

避坑点:MIG 实例创建后,普通 nvidia-smi 看到的显存总量仍是整卡,但任务实际只能用实例分配的显存。
如果应用没有按 UUID 绑定,可能仍然落到默认实例上,验证时要看任务日志里的设备号。

用 Slurm 做排队和整卡分配

如果不需要切分单卡,只是想让多个任务按顺序使用整卡,Slurm 更直接。
在调度节点安装 slurmctld,GPU 节点安装 slurmd,然后在 slurm.conf 里声明 GPU 资源:

NodeName=gpu01 Gres=gpu:4 State=UNKNOWN
PartitionName=gpu Nodes=gpu01 Default=NO MaxTime=INFINITE State=UP

再在 gres.conf 中写:

NodeName=gpu01 Name=gpu Type=a100 File=/dev/nvidia[0-3]

重启服务后,用 sinfo -o "%N %G %P" 确认 GPU 数量被识别。
提交任务时用 srun --gres=gpu:1 或 sbatch 脚本申请一张卡,Slurm 会按先来后到分配,避免两个任务同时占同一张卡。

注意:Slurm 默认不限制单任务显存,如果任务本身会占满整卡,仍然可能影响同卡上的其他进程。
需要硬隔离时,还是回到 MIG 或容器显存限制。

验证调度是否真的生效

配置完成后不要只看命令返回成功,要实际提交两个任务观察行为。
用 MIG 时,在两个终端分别绑定不同实例 UUID 启动 nvidia-smi 循环,确认各自只看到自己的显存上限。
用 Slurm 时,提交两个 --gres=gpu:1 的任务,用 squeue 看第二个任务是否处于 PENDING 而不是同时运行。

还可以用 nvidia-smi --query-compute-apps=pid,used_memory --format=csv 查看进程占用,确认没有任务跨实例串用。
如果发现任务仍然挤在同一张卡上,优先检查启动命令里是否漏了 CUDA_VISIBLE_DEVICES 或 Slurm 的 --gres 参数。

常见问题

MIG 开启后原有任务报错找不到 GPU? 切换 MIG 模式会重置设备枚举,已有进程需要重新启动,并改用新的实例 UUID 绑定。

Slurm 显示 GPU 数量不对? 检查 gres.conf 里的设备路径是否和 nvidia-smi -L 输出一致,改完后重启 slurmd。

消费级显卡能不能做算力切分? 通常不能,MIG 主要面向数据中心卡;
消费级卡建议用整卡排队加容器显存限制,不要强行套用 MIG 命令。

GPU 算力调度的关键不是把命令跑通,而是先确认硬件支持哪种隔离粒度,再让任务按预期排队。
MIG 适合硬隔离,Slurm 适合整卡排队,两者可以组合使用,但每加一层都要用实际任务验证占用和排队结果。

分享到:
上一篇
AI服务器GPU弹性伸缩怎么配置才能按任务量自动增减
下一篇
AI服务器GPU算力隔离怎么做才不影响其他任务
1
系统公告

关于香港云优质服务器IP地址更换的通知

尊敬的客户: 因原IP运营商大幅涨价,为避免成本转嫁至用户,我司决定更换IP服务商。本次更换后,您的续费价格将保持不变,且新IP网络质量与服务标准不受影响。新IP已分配至后台,即刻生效(更换的新IP都是香港原生IPv4)。 涉及 IP 段: 45.192.x.x 旧 IP 停用时间: 2026 年 12 月 1 日
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意