服務器有多張顯卡,一般是組里共用,分配好顯卡和任務就體現公德了。除了在代碼中指定使用的 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))
也可以按需增長:
1
2
3
|
config = tf.ConfigProto() config.gpu_options.allow_growth = True session = tf.Session(config = config, ...) |
如果是 Keras 使用 TensorFlow 后端,則可通過如
1
2
3
4
5
|
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 的顯存使用設置就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/leayc/article/details/79707205