상황 : 오늘도 파이참을 켜서 평화롭게 딥러닝 모델을 학습시키려는데, 아니이게 무슨일인가 cpu로 돌렸더니 너무 느리다.
gpu를 사용하면 텐서플로우(TF) 연산을 빠르게 할 수 있다고 하여 cuda를 깔아서 딥러닝에 gpu 사용하는 방법을 정리하기로 하였다.
나의 TF 버전을 파이참 인터프리터 창에서 확인해봤더니 1.14 였다. 지금 버전이 몇인데 아직도 1.14 인가. 상관없다.
테스트된 빌드 구성에서 GPU란에 호환되는 텐서플로우를 찾는다. 나는 1.14 버전을 사용하니까 CUDA는 10 cuDNN 7.4
(호환버전 확인링크 : https://www.tensorflow.org/install/source_windows#tested_build_configurations)
아래 nvidia 사이트에서 확인된 버전 CUDA를 설치(CUDA 링크: https://developer.nvidia.com/cuda-toolkit-archive)
cuDNN도 설치한다. 사이트 가입하라고 한다. 이메일 인증하면된다.
Window 10에서 개발하고 있으니 cuDNN Library for Window 10을 선택한다.
(cuDNN 링크 :https://developer.nvidia.com/rdp/cudnn-archive)
CUDA 설치하면, Program files/NVIDIA GPU Computing Toolkit/CUDA라는 폴더가 생긴다. 4개 파일을 v10.0이라는 폴더에 넣어준다.
tensorflow-gpu 는 호환버전 확인할 때 쓴 것과 같이 1.14버전을 설치한다.
(참고로 tensorflow.contrib가 1.14에서 지원을 안해서 tensorflow-gpu를 1.15로 다시 깔았다..)
주의!! CPU버전 tensorflow 1.14가 함께 깔려 있으니까 충돌이 나서 CPU로 계속 작동했던 문제가 있었다.(반드시 CPU 버전의 tensorflow는 지워준다.)
아래 코드를 작성 프로그램에 넣어준다.
# gpu 사용
gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.4)
sess = tf.Session(config=tf.ConfigProto(gpu_options=gpu_options))
#cpu만 사용
os.environ["CUDA_VISIBLE_DEVICES"]="-1"