최대 1 분 소요



사전 작업

  • gpu 사용하기에 앞서 아직 설치를 하지 못했다면 다음 글을 참고하면 된다.
  • [WINDOWS10 환경] 딥러닝을 위한 텐서플로우(tensorflow) GPU 설치 방법 : https://ingu627.github.io/tips/install_cuda/ (CUDA 11.0으로 바꿈)

image

  • nvidia-smi 명령은 사용 가능한 GPU 카드와 함께 각 카드에서 실행 중인 프로세스를 보여준다.



텐서플로가 GPU를 잘 인식하는지 확인

import tensorflow as tf

print(tf.test.is_gpu_available())

print(tf.test.gpu_device_name())

print(tf.config.experimental.list_physical_devices(device_type='GPU'))

image


if tf.config.experimental.list_physical_devices("GPU"):
    with tf.device("gpu:0"):
        print("GPU 사용 가능")
        v = tf.Variable(tf.random.normal([1000, 1000]))
        v = None  # v는 더이상 GPU 메모리를 사용하지 않음

image




장치 할당 로깅

import tensorflow as tf
tf.debugging.set_log_device_placement(True)



GPU 메모리 제한하기

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
  # 텐서플로가 첫 번째 GPU만 사용하도록 제한
  try:
    tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
  except RuntimeError as e:
    # 프로그램 시작시에 접근 가능한 장치가 설정되어야만 합니다
    print(e)



텐서플로가 필요할 때만 메모리를 점유하게 만드는 코드

for gpu in tf.config.experimental.list_physical_devices("GPU"):
    tf.config.experimental.set_memory_growth(gpu, True)



특정 GPU에 2048GB 메모리만 할당하도록 제한

import tensorflow as tf

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
    # 특정 GPU에 2048GB 메모리만 할당하도록 제한
    try:
        tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
        tf.config.experimental.set_virtual_device_configuration(
            gpus[0],
            [tf.config.experimental.VirtualDeviceConfiguration(memory_limit=2048)])
    except RuntimeError as e:
    # 프로그램 시작시에 가상 장치가 설정되어야만 합니다
        print(e)





References

댓글남기기