GPU 节点任务提交
快速命令见章节 快速作业命令
案例在 ~/example
,不同gpu目录对应不同的分区
bash
[skl_lcy@login01 example]# ls |grep gpu-
gpu-a800
gpu-h100
gpu-l40
gpu-l48
GPU 节点任务提交(以 L48 为例)
单节点,2 GPU(快速提交)
进入运行目录后,可用 bjmurun-l48 提交快速任务:
bash
bjmurun-l48 1 2 nvidia-smi
含义:
1
→ 使用 1 个节点2
→ 使用 2 张 GPUnvidia-smi
→ 在 GPU 上执行的命令
单节点,3 GPU
3GPU的脚本 job-gpu_l48-3.srp
如下:
bash
#!/bin/bash
#SBATCH -J sle131755
#SBATCH -p gpu_l48
#SBATCH -N 1
#SBATCH -o gg2_%j.out
#SBATCH -e gg2_%j.err
#SBATCH --no-requeue
#SBATCH -A skl_g1
#SBATCH --qos=skll48
#SBATCH --gres=gpu:3
#SBATCH --mincpus=24
nvidia-smi
说明:
--gres=gpu:3
→ 申请 3 张 GPU--overcommit
→ 允许在分配的 CPU 上运行更多任务--mincpus=21
→ 每张 GPU 分配约 8 个 CPU,共 24 个
单节点,4 GPU(独占)
4GPU的脚本 job-gpu_l48-4.srp
如下:
bash
#!/bin/bash
#SBATCH -J sle131755
#SBATCH -p gpu_l48
#SBATCH -N 1
#SBATCH -o gg2_%j.out
#SBATCH -e gg2_%j.err
#SBATCH --no-requeue
#SBATCH -A skl_g1
#SBATCH --qos=skll48
#SBATCH --gres=gpu:4
#SBATCH --mincpus=32
#SBATCH --exclusive
nvidia-smi
说明:
--exclusive
→ 独占整个节点(4 张 GPU + 对应 CPU 核心)
GPU 跨节点使用
- 当使用
bjmurun-l48 2 ...
提交跨节点任务时,每个节点默认使用 4 张 GPU。
例如:
bash
bjmurun-l48 2 3 nvidia-smi
实际会被替换为:
bash
bjmurun-l48 2 4 nvidia-smi
- 跨节点时 3 GPU 无效,系统会自动使用 4 GPU。
GPU 分区使用说明
单节点任务
- 可灵活申请 1–8 张 GPU(如
--gres=gpu:1/2/3/.../8
)。
- 可灵活申请 1–8 张 GPU(如
跨节点任务
- 系统会强制按整节点方式分配 GPU:
- 每节点 4 卡 或 8 卡
- 例如:
bjmurun-l48 2 3
→ 实际分配为 2 节点 × 4 卡 = 8 GPUbjmurun-l48 2 8
→ 实际分配为 2 节点 × 8 卡 = 16 GPU
- 系统会强制按整节点方式分配 GPU:
这样做是为了避免资源碎片化,保证分布式 GPU 通信对称,提升稳定性与性能
TIP
- 单节点 → 可用 1–8 卡
- 跨节点 → 仅支持整节点分配(4 卡或 8 卡),不支持 3/5/6 卡配置