无法在 Slurm 中分配 GPU

问题描述

我在 Slurm 集群中分配 GPU 资源时遇到问题。

指定1个GPU,如下图运行,提示无法分配gres资源。如果不止一个,结果相同。

$ srun --gres=gpu:1 --pty bash
srun: error: Unable to create step for job 73: Invalid generic resource (gres) specification

计算节点的gres信息好像正确出来了,如下

$ sinfo -o "%20N  %10c  %10m  %25f  %10G "
NODELIST              cpuS        MEMORY      AVAIL_FEATURES             GRES       
gpu_svr[1-4  72          515484      (null)                     gpu:8   

slurm.conf中的Node配置如下

/etc/slurm/slurm.conf

GresTypes=gpu
NodeName=gpu_svr1 NodeAddr=x.x.x.1 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18 
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
NodeName=gpu_svr2 NodeAddr=x.x.x.2 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18 
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
NodeName=gpu_svr3 NodeAddr=x.x.x.3 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18 
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
NodeName=gpu_svr4 NodeAddr=x.x.x.4 cpus=72 RealMemory=515484 Sockets=2 CoresPerSocket=18 
ThreadsPerCore=2 Gres=gpu:8 State=UNKNowN
PartitionName=v100 Nodes=ALL Default=YES MaxTime=INFINITE State=UP

这里是计算节点上的 gres.conf

gres.conf 

NodeName=gpu_svr[1-4] Name=gpu File=/dev/nvidia[0-7]

解决方法

解决了。

slurm.conf 中应说明以下选项

SelectType=select/cons_tres 
SelectTypeParameters=CR_Core 
JobAcctGatherType=jobacct_gather/cgroup