天天看點

多卡伺服器下隐藏部分 GPU 和 TensorFlow 的顯存使用設定

伺服器有多張顯示卡,一般是組裡共用,配置設定好顯示卡和任務就展現公德了。除了在代碼中指定使用的 GPU 編号,還可以直接設定可見 GPU 編号,使程式/使用者隻對部分 GPU 可見。

操作很簡單,使用環境變量

CUDA_VISIBLE_DEVICES

即可。

具體來說,如果使用單卡運作 Python 腳本,則可輸入

腳本将隻使用 GPU1。

在 .py 腳本和 Notebook 中設定,則

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "2"
           

還可以直接設定臨時的環境變量:

此時該使用者的 CUDA 隻看得見 GPU0。

至于顯存設定,可以設定使用比例(70%):

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))        
           

也可以按需增長:

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
session = tf.Session(config=config, ...)
           

如果是 Keras 使用 TensorFlow 後端,則可通過如

import tensorflow as tf 
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
set_session(tf.Session(config=config))
           

更改使用設定。

繼續閱讀