수색…


소개

이 항목에서는 TensorFlow에서 GPU를 설정하고 관리하는 방법에 대해 설명합니다.

TensorFlow의 GPU 버전이 설치되어 있다고 가정합니다 (GPU 설치에 대한 자세한 내용은 https://www.tensorflow.org/install/ 를 참조 하십시오 ).

또한 공식 문서를 살펴보고 싶을 수도 있습니다. https://www.tensorflow.org/tutorials/using_gpu

비고

주요 출처 :

`CUDA_VISIBLE_DEVICES` 환경 변수를 사용하여 CPU에서만 TensorFlow를 실행하십시오.

GPU 버전 TensorFlow 프로세스가 CPU에서만 실행되도록하려면 다음을 수행하십시오.

import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"    
import tensorflow as tf

CUDA_VISIBLE_DEVICES 에 대한 자세한 정보는이 답변 또는 CUDA 문서를 참조하십시오 .

CPU에서만 TensorFlow Graph 실행 -`tf.config` 사용

import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(device_count={'GPU': 0}))

이 방법은 TensorFlow 그래프가 GPU를 사용하는 것을 방지하지만 TensorFlow는이 방법으로 열린이 문제 에서 설명한대로 GPU 장치를 잠그는 것을 유의하십시오. CUDA_VISIBLE_DEVICES 사용하면 TensorFlow가 GPU 카드에서 멀리 떨어져 있도록하는 가장 좋은 방법 인 것 같습니다 (이 답변 참조).

특정 GPU 장치 세트 사용

특정 GPU 장치 세트를 사용하려면 CUDA_VISIBLE_DEVICES 환경 변수를 사용할 수 있습니다.

import os
os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" # see issue #152
os.environ["CUDA_VISIBLE_DEVICES"]="0" # Will use only the first GPU device


os.environ["CUDA_VISIBLE_DEVICES"]="0,3" # Will use only the first and the fourth GPU devices

(이 답변 에서 인용, CUDA 환경 변수에 대한 자세한 내용은 여기를 참조하십시오 .)

로컬 프로세스에서 TensorFlow가 사용할 수있는 사용 가능한 장치를 나열하십시오.

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

GPU 메모리 할당 제어

기본적으로 TensorFlow는 GPU 카드의 전체 메모리를 미리 할당합니다 ( CUDA_OUT_OF_MEMORY 경고가 CUDA_OUT_OF_MEMORY 있음).

이를 변경하려면

  • per_process_gpu_memory_fraction 구성 옵션을 사용하여 미리 할당 된 메모리 비율 변경,

    0과 1 사이의 값으로,
    사용 가능한 GPU 메모리가 각 프로세스에 대해 사전 할당됩니다. 1 의미
    모든 GPU 메모리를 사전 할당하려면 0.5는 프로세스를 의미합니다.
    사용 가능한 GPU 메모리의 ~ 50 %를 할당합니다.

  • allow_growth 구성 옵션을 사용하여 사전 할당을 비활성화하십시오. 사용량이 증가함에 따라 메모리 할당이 증가합니다.

    true의 경우, 할당자는 지정된 전체를 사전에 할당하지 않습니다.
    대신 GPU 메모리 영역이 필요하고 작게 시작됩니다.

예 :

config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.4
sess = tf.Session(config=config) as sess:

또는

config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess= tf.Session(config=config):

구성 옵션에 대한 자세한 내용은 여기를 참조하십시오 .



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow