4つのTitanX GPUを搭載したマシン(Ubuntu 16.04サーバー)があります。これは学生がCUDAのようなことを学ぶ実験室機械になります。 GPUの可用性に応じてタスクを自動的にスケジュールし、キューに追加するツールが欲しかったので、SLURMをインストールしました。
このため、学生はSLURMを介してのみGPUにアクセスできます。 SLURMとカードが同じホスト上のスタンドアロン設定でこれを達成する方法はありますか?
生徒は以下を介してのみカードを取得できます。
# srun --gres ...
わかりました。CUDA_VISIBLE_DEVICES
ただし、この変数はrootまたはユーザーごとに設定すると無視されます。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 *デバイス)のアクセス権を現在のユーザーに設定します。