【问题标题】:separating values of CUDA_VISIBLE_DEVICES variable分离 CUDA_VISIBLE_DEVICES 变量的值
【发布时间】:2021-03-15 14:23:57
【问题描述】:

我正在使用 SLURM 作为调度程序的集群中运行作业。我使用选项--gres=gpu:k80 指定GPU 卡的类型。但是,由于集群中的节点具有不同数量的卡,因此有时会出现 2 或 4 个。我可以通过以下方式查看可用设备:

echo $CUDA_VISIBLE_DEVICES

报告一个列表,0,1 或 0,1,2,3。我需要列表的最大值 1 或 3。这是我的问题:SLURM 中是否有一些选项可以知道这一点?

【问题讨论】:

  • 那么从数组中获取最大的数字就足够了吗?
  • 我正在使用以下 hack:export num_dev=`echo $CUDA_VISIBLE_DEVICES | awk 'BEGIN{FS=","};{print NF}'` 有效但似乎有点晦涩
  • 我认为您应该以该列表的长度为目标。

标签: bash cuda hpc slurm


【解决方案1】:

你可以简化

export num_def=${CUDA_VISIBLE_DEVICES: -1}

Slurm 可以为您提供信息,但解析起来会比较困难。例如,

squeue -J $SLURM_JIBID -O tres-alloc:100

会显示类似

cpu=1,mem=1000M,node=1,billing=1,gres/gpu=1

这里的最后一个数字是分配给作业的 GPU 数量。

【讨论】:

    猜你喜欢
    • 2012-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多