1. 程式人生 > 程式設計 >淺談多卡伺服器下隱藏部分 GPU 和 TensorFlow 的視訊記憶體使用設定

淺談多卡伺服器下隱藏部分 GPU 和 TensorFlow 的視訊記憶體使用設定

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

操作很簡單,使用環境變數 CUDA_VISIBLE_DEVICES 即可。

具體來說,如果使用單卡執行 Python 指令碼,則可輸入

CUDA_VISIBLE_DEVICES=1 python my_script.py

指令碼將只使用 GPU1。

在 .py 指令碼和 Notebook 中設定,則

import os

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

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

export CUDA_VISIBLE_DEVICES="0"

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

至於視訊記憶體設定,可以設定使用比例(70%):

gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.7)

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))

更改使用設定。

以上這篇淺談多卡伺服器下隱藏部分 GPU 和 TensorFlow 的視訊記憶體使用設定就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。