텐서플로우가 GPU를 사용하지 못할 때 해결책

데이터 여행자·2021년 1월 21일
0

CNN 모델을 학습시킬 때(batch size=32, epochs=10) 학습 시간은 약 30분이 걸린다고 하였다. 그런데 나는 한 epoch당 25분이 걸리는 것이다. 이상해서 재부팅을 해보기도 했지만 여전히 시간이 오래 걸려서 tensorflow를 삭제하고 다시 깔아야 한다고 하였다. 지우고 다시 설치해도 안 되어서 슬랙을 찾아보았더니 어떤 고마우신 분이 해결책을 써놓아 주셨다. 다음에 혹시라도 같은 일이 벌어질까봐 해결 방법을 적으려고 한다.

우선 tf.test.is_gpu_available() 소스를 실행해 텐서플로우가 GPU를 잘 사용하고 있는지 확인한다. 만약 GPU를 사용하지 않는다면 다음을 따른다.

  1. 가상환경 삭제

  2. 가상환경 노드0번 따라 재구성

  3. 터미널을 켜서 pip list 로 텐서플로우 설치여부 확인
    tensorflow, tensorflow base 등 tensorflow가 들어간 것들은 모두 삭제한다.
    conda uninstall tensorflow

  4. pip list | grep -i tensor를 터미널에 입력하여 텐서플로우의 설치여부를 확인하여 삭제되었는지 확인한다.

  5. 텐서플로우를 다시 설치한다.
    conda install tensorflow-gpu

  6. nvcc -v 로 쿠다 툴킷 설치 여부를 확인한다.

  7. 설치되지 않았다면 쿠다툴킷을 설치한다.
    sudo apt install nvidia-cuda-toolkit

  8. 가상환경을 업데이트한다.
    sudo apt-get update

  9. 노트북을 재부팅한다.

  10. nvcc -v 로 쿠다 툴킷의 설치 여부를 확인하여 설치되었다면 GPU가 정상적으로 작동할 것이다.

학습 시간이 오래 걸려서 얼마나 마음 졸였는지 모른다. 슬랙에 글을 올려주신 분이 아니었다면 이번 프로젝트는 시작조차 하지 못했을 것이다. 감사하는 마음으로 노드와 프로젝트를 하고 있다.

0개의 댓글