GPU를 인식하지 못하는 문제 해결

1 분 소요

이 글에서는 tensorflow와 keras를 이용하여 이미지를 분류할 때, GPU를 인식하지 못하는 문제에 대해 기술하려고 한다. (필자가 경험한 내용만을 다루고 있으므로 참고바란다.)

GPU를 인식하지 못하는 문제

우선, 이전 글인 딥러닝 테스트용 PC 설치 및 설정을 선행한 후, terminal에서 아래와 같은 명령어를 입력해보도록 하자.

nvidia-smi

그 결과가 아래와 같이 나온다면 GPU 드라이버 설치는 정상적으로 이루어진 것이다.

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.26                 Driver Version: 375.26                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1080    Off  | 0000:01:00.0     Off |                  N/A |
|  0%   30C    P8    13W / 198W |   7745MiB /  8111MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|    0     19846    C   .../versions/2.7.13/envs/keras/bin/python2.7  7743MiB |
+-----------------------------------------------------------------------------+

만약, 명령어를 인식하지 못한다거나 문제가 발생한다면 GPU 드라이버 설치에 문제가 있는 것이다. 이 경우, GPU 드라이버 설치 가이드tensorflow os별 설치 방법을 참고하면 해결이 가능하다.

대체적으로 keras 이용시 문제가 되었던 부분은,

  1. nvidia GPU 드라이버의 잘못된 설치
  2. nvidia-modprobe의 미활용(nvidia-modprobe는 머신이 실행될 때마다 자동적으로 NVIDIA 커널 모듈을 불러오고, NVIDIA 캐릭터 장치를 생성하는 역할을 한다.)
  3. CUDA_HOME, LD_LIBRARY_PATH 등 cuda, cudnn 경로 환경 변수 미적용

정도였던 것 같다.

추후, 새로운 문제가 발견되어 해결한다면 지속적으로 업데이트를 할 예정이다.