Programing

Jupyter 내 Tensorflow 세트 CUDA_VISIBLE_DEVICES

crosscheck 2020. 11. 20. 08:37
반응형

Jupyter 내 Tensorflow 세트 CUDA_VISIBLE_DEVICES


두 개의 GPU가 있고 ipynb를 통해 두 개의 서로 다른 네트워크를 동시에 실행하고 싶지만 첫 번째 노트북은 항상 두 GPU를 모두 할당합니다.

CUDA_VISIBLE_DEVICES를 사용하여 파이썬 파일에 대한 장치를 숨길 수 있지만 노트북 내에서 그렇게하는 방법을 잘 모르겠습니다.

어쨌든 동일한 서버에서 실행되는 노트북에 다른 GPU를 숨길 수 있습니까?


를 사용하여 노트북에서 환경 변수를 설정할 수 있습니다 os.environ. TensorFlow를 초기화하기 전에 다음을 수행하여 TensorFlow를 첫 번째 GPU로 제한합니다.

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

매직 을 사용하여 가져 오기없이 더 빠르게 할 수 있습니다 .

%env CUDA_DEVICE_ORDER=PCI_BUS_ID
%env CUDA_VISIBLE_DEVICES=0

모든 env 변수는 문자열이므로 사용할 필요가 없습니다 ". 다음을 실행하여 env-variable이 설정되었는지 확인할 수 있습니다 %env <name_of_var>.. 또는 모두 %env.

참고 URL : https://stackoverflow.com/questions/37893755/tensorflow-set-cuda-visible-devices-within-jupyter

반응형