如何简化CUDA_VISIBLE_DEVICES=0,1,6,7

问题描述 投票:0回答:1

每次开始训练时,我都需要手动输入类似

CUDA_VISIBLE_DEVICES=0,1,6,7
的命令,具体取决于我要使用多少个GPU以及哪些当前是空闲的。

这个答案提供了一个丑陋但实用的解决方法。 IE。在

.bashrc
中为每个组合写一个别名:

alias gpu4='CUDA_VISIBLE_DEVICES=4'
alias gpu25='CUDA_VISIBLE_DEVICES=2,5'
alias gpu256='CUDA_VISIBLE_DEVICES=2,5,6'
alias gpu0467='CUDA_VISIBLE_DEVICES=0,4,6,7'

例如,这可以节省输入“CUDA_VISIBLE_DEVICES”的大量时间。

如何进一步简化

CUDA_VISIBLE_DEVICES
的使用?

或者,任何人都可以分享一种更优雅的方式来替换上面的

alias
列表吗?

bash alias multi-gpu
1个回答
7
投票

也许是这样一个简单的函数?

cuda () {
    local devs=$1
    shift
    CUDA_VISIBLE_DEVICES="$devs" "$@"
}

你会像这样运行它

cuda 2,3,7 command --options

一般来说,更喜欢函数而不是别名。

© www.soinside.com 2019 - 2024. All rights reserved.