4개의 TitanX GPU가 있는 머신(Ubuntu 16.04 서버)이 있습니다. 이것은 학생들이 CUDA와 같은 것을 배울 실험실 기계가 될 것입니다. GPU 가용성에 따라 작업을 자동으로 예약하고 대기열에 추가하는 도구를 원했기 때문에 SLURM을 설치했습니다.
이러한 이유로 학생들은 SLURM을 통해서만 GPU에 액세스할 수 있습니다. SLURM과 카드가 동일한 호스트에 있는 독립 실행형 설정에서 이를 달성할 수 있는 방법이 있습니까?
학생들은 다음을 통해서만 카드를 얻을 수 있습니다:
# srun --gres ...
알아요. CUDA_VISIBLE_DEVICES
하지만 이 변수는 루트 또는 사용자별로 설정할 때 무시됩니다. deviceQuery
CUDA 예제 와 같이 프로세스별로 설정된 경우에만 작동합니다 .
# CUDA_VISIBLE_DEVICES=2 /usr/local/cuda-9.0/extras/demo_suite/deviceQuery
그리고 아마도 SLURM 자체에서 카드를 제한하는 데 사용되므로 해결책이 아닙니다.
K님께 안부 인사를 드립니다 .
답변1
PrologSlurmctld(https://slurm.schedmd.com/slurm.conf.html#OPT_PrologSlurmctld) 스크립트에서 setfacl을 사용하여 GPU(/dev/nvidia* 장치)의 액세스 권한을 현재 사용자에게 설정합니다.