Подтвердить что ты не робот

Набор тензорного потока CUDA_VISIBLE_DEVICES в jupyter

У меня два графических процессора, и я хотел бы одновременно запускать две разные сети через ipynb, однако первый ноутбук всегда выделяет оба графических процессора.

Используя CUDA_VISIBLE_DEVICES, я могу скрыть устройства для файлов python, однако я не уверен, как это сделать в ноутбуке.

В любом случае, чтобы скрыть разные графические процессоры к ноутбукам, работающим на одном сервере?

4b9b3361

Ответ 1

Вы можете установить переменные среды в ноутбуке, используя os.environ. Перед инициализацией TensorFlow выполните следующие действия, чтобы ограничить TensorFlow до первого графического процессора.

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"   # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0"

Вы можете дважды проверить, что у вас есть правильные устройства, видимые для TF

from tensorflow.python.client import device_lib
print device_lib.list_local_devices()

Я обычно использую его из служебного модуля, например notebook_util

import notebook_util
notebook_util.pick_gpu_lowest_memory()
import tensorflow as tf

Ответ 2

Вы можете сделать это быстрее без импорта, используя magics:

%env CUDA_DEVICE_ORDER=PCI_BUS_ID
%env CUDA_VISIBLE_DEVICES=0

Обратите внимание, что все переменные env являются строками, поэтому не нужно использовать ". Вы можете убедиться, что env-variable настроена путем запуска: %env <name_of_var>. Или проверьте все из них с помощью %env.