每次开始训练时,我都需要手动输入类似
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
列表吗?
也许是这样一个简单的函数?
cuda () {
local devs=$1
shift
CUDA_VISIBLE_DEVICES="$devs" "$@"
}
你会像这样运行它
cuda 2,3,7 command --options
一般来说,更喜欢函数而不是别名。