有一台服务器,服务器上有多块GPU可以供使用,此时只希望使用某几块GPU。
一般来说,深度学习的代码中只会指出GPU的数量,却没有指出使用哪几块,在初次接触的时候很是让人头疼,搜索都没有相关的解决办法。
解决方案:可以使用环境变量CUDA_VISIBLE_DEVICES来解决问题(让机器只可见某几块GPU,然后指定GPU数量)。
方法一:临时修改环境变量(随改随用,一次有效)
export CUDA_VISIBLE_DEVICES=0 (只可见0号显卡)
export CUDA_VISIBLE_DEVICES=0,2(只可见0,2号显卡)
方法二:永久修改环境变量
打开 .bashrc 文件,在里面添加环境变量
export CUDA_VISIBLE_DEVICES=1
然后
source .bashrc
即可
方法三:在代码里修改
可以在文件开头加入如下代码:
import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "1" # 使用1号显卡
也可以制定使用某几块GPU
import os
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "0, 2"
禁用GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"