跳转至

GPU 资源

分区和请求名称

分区 节点 每节点配置 请求示例
gpu-full gpu01、gpu02 8 × 完整 H20 --gres=gpu:h20:1
gpu-mig gpu03、gpu04 12 × 2g.24gb 与 8 × 3g.48gb 见下表

gpu-full 是默认分区,但仍建议在脚本中显式写出 --partition,提高可读性和可重复性。

MIG 资源:

资源名 显存规格 单节点当前配置量 请求示例
h20_2g.24gb 24 GiB 12 --gres=gpu:h20_2g.24gb:1
h20_3g.48gb 48 GiB 8 --gres=gpu:h20_3g.48gb:1

查询实时可用性

sinfo -o "%P %a %D %t %G"
scontrol show partition gpu-full
scontrol show partition gpu-mig
scontrol show node gpu03

节点可能因为维护或健康检查处于 DRAINDOWN 等状态。表中的配置量是目标配置, 实时可调度数量以 Slurm 输出为准。

请求示例

srun --account=project-example \
  --partition=gpu-full \
  --gres=gpu:h20:2 \
  --time=00:10:00 \
  nvidia-smi -L
srun --account=project-example \
  --partition=gpu-mig \
  --gres=gpu:h20_2g.24gb:1 \
  --time=00:10:00 \
  nvidia-smi -L
srun --account=project-example \
  --partition=gpu-mig \
  --gres=gpu:h20_3g.48gb:1 \
  --time=00:10:00 \
  nvidia-smi -L

作业内的 CUDA_VISIBLE_DEVICESnvidia-smi -L 应只显示分配给该作业的设备。 不要覆盖 CUDA_VISIBLE_DEVICES 来尝试访问其他 GPU。

合理申请

  • 单卡可以完成时不要申请整节点;显存需求较小时优先考虑 MIG。
  • 同时声明 --cpus-per-task--mem--time,避免 GPU 等待数据或 CPU。
  • 多 GPU 程序要确认应用确实初始化了所有设备;“看得到”不代表“用到了”。
  • sacct 检查退出状态,用应用自身的指标检查 GPU 利用率和训练吞吐。

多节点通信验收

多节点 GPU 可见、容器可启动和共享目录可读,只证明资源分配与基础环境可用。 如果任务依赖 NCCL/RoCE,应使用项目认可的版本化测试镜像,并确认 NCCL 日志选择 NET/IB,而不是回退到 NET/Socket