【发布时间】:2017-10-13 12:36:13
【问题描述】:
当我将带有选项 --gres=gpu:1 的 SLURM 作业提交到具有两个 GPU 的节点时,如何获取分配给该作业的 GPU 的 ID?是否有为此目的的环境变量?我使用的 GPU 都是 nvidia GPU。 谢谢。
【问题讨论】:
当我将带有选项 --gres=gpu:1 的 SLURM 作业提交到具有两个 GPU 的节点时,如何获取分配给该作业的 GPU 的 ID?是否有为此目的的环境变量?我使用的 GPU 都是 nvidia GPU。 谢谢。
【问题讨论】:
您可以使用环境变量CUDA_VISIBLE_DEVICES 获取GPU id。此变量是分配给作业的 GPU id 的逗号分隔列表。
【讨论】:
您可以检查给定节点的环境变量SLURM_STEP_GPUS 或SLURM_JOB_GPUS:
echo ${SLURM_STEP_GPUS:-$SLURM_JOB_GPUS}
注意CUDA_VISIBLE_DEVICES 可能与实际值不对应(see @isarandi's comment)。
另外,请注意这也适用于非 Nvidia GPU。
【讨论】: