[인공지능] TensorFlow GPU 동작 확인 방법

목적

  • 앞서 TensorFlow 2.x.x 환경에서 학습을 CPU가 아닌 GPU로 돌리기 위해 CUDA, cuDNN 설치를 진행하였습니다.
  • 실제로 TensorFlow 2.x.x 환경에서 Keras API 이용한 예제 코드를 작성 후, 학습하여 CPU가 아닌 GPU로 동작하는지 테스트 진행합니다.

TensorFlow 2.x.x 예제 코드 작성

  • 구글링을 통해, 간단한 TensorFlow 예제 코드를 찾았습니다.
  • 해당 내용을 학습 시켜서 CPU가 아닌 GPU로 학습이 이루어지는지 테스트 진행합니다.
import tensorflow as tf

mnist = tf.keras.datasets.mnist

(x_train, y_train),(x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(x_train, y_train, epochs=10)
model.evaluate(x_test, y_test)

테스트 결과

  • 지난번 테스트에서는 CUDA, cuDNN이 설치가 되지 않아서, cudart64_110.dll not found 에러가 발생 후, CPU로 실행되었습니다.
  • 하지만 CUDA, cuDNN이 설치된 후에는 cudart64_110.dll not found 에러가 발생하지 않고 ...name: NVIDIA GeForce GTX 1050 Ti... 이렇게 GPU로 실행된 것을 확인할 수 있습니다.
2022-02-09 14:25:01.209702: I tensorflow/core/platform/cpu_feature_guard.cc:151] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2022-02-09 14:25:01.648836: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1525] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 2782 MB memory:  -> device: 0, name: NVIDIA GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1
Epoch 1/10
1875/1875 [==============================] - 7s 3ms/step - loss: 0.3076 - accuracy: 0.9088
Epoch 2/10
1875/1875 [==============================] - 7s 4ms/step - loss: 0.1500 - accuracy: 0.9554
Epoch 3/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.1119 - accuracy: 0.9661
Epoch 4/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0932 - accuracy: 0.9709
Epoch 5/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0770 - accuracy: 0.9759
Epoch 6/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0676 - accuracy: 0.9782
Epoch 7/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0614 - accuracy: 0.9795
Epoch 8/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0555 - accuracy: 0.9819
Epoch 9/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0516 - accuracy: 0.9830
Epoch 10/10
1875/1875 [==============================] - 8s 4ms/step - loss: 0.0459 - accuracy: 0.9843
313/313 [==============================] - 1s 3ms/step - loss: 0.0687 - accuracy: 0.9806

GPU 테스트 확인

  • 실제로 CPU가 아닌 GPU로 실행됐는지 보다 정확하게 확인하기 위해서 작업관리자 -> 성능 -> GPU 기능을 모니터링 하였습니다.
  • 학습 실행할 때, GPU 사용량이 급격히 증가하는 것을 확인할 수 있습니다.
  • 때문에 GPU로 학습이 정상적으로 이루어 졌다고 판단됩니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY