티스토리 뷰

 Conda를 활용해서 tensorflow 환경을 구성하고 package를 설치할 때 tensorflow-gpu를 설치했다면, 기본 설정이 CPU 연산이 아닌 GPU연산으로 변경된다. 이렇게 될 경우 keras의 Fit()함수를 써서 학습을 시킬 경우 cuDNN package를 못찾는 경고가 뜬다.

 이 경고는 해당 시스템에 cuDNN이 포함된 CUDA Toolkit이 설치되어 있지 않기 때문에 발생하는 문제이고, Nvidia 사이트에서 CUDA Toolkit을 설치해야 한다. 참고로 윈도우 환경에서는 랩탑이든 데스크탑이든 Nvidia 칩셋이 있는 경우에만 gpu를 통해서 연산이 가능하다. AMD나 Intel GPU를 사용하려면 OpenCL같은게 포팅되어 있어야 하는데, 얼핏 찾기로는 Linux용 tensorflow-gpu에만 구현되어 있다고 본거 같다.

 일단 맞는 CUDA toolkit을 설치하기 위해서 내가 가진 GPU가 어떤건지를 확인해야 한다.

 확인 방법: 제어판 - 장치관리자 - 디스플레이 어댑터를 통해 Nvidia 칩셋이 있는지 확인한다.  

 현재 내가 사용하고 있는 CPU는 i7 4790k 이고,여기엔 HD 4600 이란 내장 GPU가 붙어있다. 그리고 외장으로 GTX970을 장착하고 있는데, 이렇게 Nvidia GPU가 나타나있어야 한다. 

 그다음 아래 링크로 들어가서 CUDA 지원 여부를 확인한다.

     https://developer.nvidia.com/cuda-gpus

내가 쓰고 있는 GTX 970은 Compute Capability가 5.2 이라고 표현되어 있다. 여기서 말하는 Compute Capability란 연산량을 나타내는 것이고, 아마 내가 알기로는 DeepLearning에 사용되는 Framework의 요구사항을 보면 GPU 지원항목에 Compute Capability가 표현되어 있다. 참고로 tensorflow의 경우에는 사이트에 다음과 같이 요구사항이 명기되어 있다.

위의 항목을 보면 Compute Capability가 3.0이상이어야 tensorflow-gpu를 사용할 수 있다고 정의되어 있다. 이렇게 조건을 만족하는 상태에서 CUDA Toolkit 8.0(최신 버전)을 설치하면 위의 조건을 만족하게 된다. (찾아보면 cuDNN은 따로 받아서 설치해야 한다고 되어 있는데, 나같은 경우는 2017년 3월에 나온 CUDA Toolkit을 설치한 결과 정상적으로 동작하였다)

 만약 확인을 해보고자 할 경우에는 tensorflow-gpu가 설치된 환경에서 python을 실행한 후에 다음 명령어를 실행해보면 된다. 

1
import tensorflow as tf
cs

 정상적으로 설치되었을 경우 python 관련 library가 성공적으로 link되었다는 메세지가 출력된다.

** 그냥 개인적인 생각으로는 conda의 환경으로 tensorflow와 tensorflow-gpu 로 나눠서 진행하는게 좋을거 같다.   집에서 test 해본 결과로는 GPU로 구동시켰을 때 동작 속도가 CPU에 비해서 많이 느린듯한 느낌이 든다. 그래서 애초에 conda로 환경을 잡을 때 두개 환경을 구분해서 상황에 따라 진행하면 좋을거 같다는 생각이 든다. 아래와 같이 말이다.

  : tensorflow - tensorflow-gpu를 설치하지 않은 env

  : tensorflow-gpu - tensorflow-gpu를 설치한 env

댓글