如果代码中很多地方需要指定使用gpu,原本写法并未指定具体某一块,这样在改代码的时候会十分麻烦,我们可以通过CUDA_VISIBLE_DEVICES来指定某块gpu,这样,在程序看来,是只有指定的这块gpu的,而其他gpu都不可见了,也就不会使用其他gpu。
运行python脚本时,使用如下这种方法,指定gpu
# run_python.sh
gpu=2
CUDA_VISIBLE_DEVICES=$gpu python gpuProgram.py
另一种方法是通过在python文件运行中指定
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '2'
命令 | 说明 |
---|---|
CUDA_VISIBLE_DEVICES=1 | 只有编号为1的GPU对程序是可见的,在代码中gpu[0]指的就是这块GPU |
CUDA_VISIBLE_DEVICES=0,2,3 | 只有编号为0,2,3的GPU对程序是可见的,在代码中gpu[0]指的是第0块,gpu[1]指的是第2块,gpu[2]指的是第3块 |
CUDA_VISIBLE_DEVICES=2,0,3 | 只有编号为0,2,3的GPU对程序是可见的,但是在代码中gpu[0]指的是第2块,gpu[1]指的是第0块,gpu[2]指的是第3块 |