一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用。并且,一般我们的程序也用不了所有的GPU资源,只是强行霸占着,大部分资源都不会用到,也不会提升运行速度。
使用nvidia-smi可以查看本机的GPU使用情况,如下图,这里可以看出,本机的GPU型号是K80,共有两个K80,四块可用(一个K80包括两块K40)。
1、如果是只需要用某一块或某几块GPU,可以在运行程序时,利用如下命令运行:CUDA_VISIBLE_DEVICES=0,1 python test.py
这里表示只有GPU 0和1对程序可见,因此也就限制了程序只能用GPU 0和1
同样,也可以在代码里指定
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
如果想只用CPU,不用CPU来运行程序,可以用如下命令(所有GPU都不可见):
CUDA_VISIBLE_DEVICES='' python test.py
或者是
CUDA_VISIBLE_DEVICES="-1" python test.py
2、让tensorflow只按需索取显存,如下代码所示
#only minimum use gpu
gpu_config = tf.ConfigProto()
gpu_config.gpu_options.allow_growth =