1월, 2018의 게시물 표시

Tensorflow-gpu에서 GPU 안쓰고 돌리기

나는 두대의 컴퓨터가 있다.  한대는 2013년에 60만원을 주고 산, 오래된 데스크탑이고, 한대는 2017년에 산 150만원 대의 게이밍용 노트북이다. 게이밍용 노트북의 성능이 데톱보다는 훨씬 뛰어난 편이라 생각한다.   그런데 오늘 김성훈 교수님의 머신러닝 강의를 들으면서 Tensorflow를 돌렸더니 이게 웬걸 데톱이 게이밍 노트북보다 2배나 빠른 성능을 보이는 것이다.   무척이나 이상해서 여러번 시도해도 달라지지 않았다.  그 이유는 다름아닌, gpu를 사용 유무였다.  나는 gpu를 사용하는 것이 모든 조건에서 빠른 성능을 낼 줄로 예측을 했는데, 실제로는 테스트용 코드들은 gpu를 사용하지 않는 조건에서 더 빠른 연산을 할 수 있는 것으로 보인다.   데톱에는 그냥 tensorflow를 깔았고, 노트북에는 tensorflow-gpu를 깔았으니, 다시 돌리자니 시간이 아깝고, 앞으로 gpu를 필요로 할 텐데 굳이 그럴 필요있나 싶다. 이럴 때는 간단하게 gpu를 안쓰고 cpu 만으로 코드를 돌리도록 유도할 수 있다.  이런 식으로 session을 변형시켜주면 된다.  config = tf.ConfigProto( device_count = {'GPU': 0} ) sess = tf.Session(config=config) 출처: 준돌 블로그 이렇게 하면, tensorflow-gpu 환경에서도 쉽게 gpu를 제외하고 cpu 만으로 연산을 돌려 볼 수 있다. 

1. Anaconda를 이용하여 Tensorflow-gpu 작업환경 구축하기

이미지
Tensorflow-gpu의 작업환경을 구축해보자. Anaconda를 이용해서 환경을 구축하려고 한다. 추천하는 이유는 환경설정 등의 셋업이 간단하고 편리하기 때문이다.  1.  Anaconda 다운로드 링크  에 접속해서 사양에 맞는걸 다운로드하여 설치한다.  특별한 경우가 아니고서는 파이썬 3.x 버전으로 받는걸 추천한다. 설치과정은 그냥 따라가면 된다. 2. 설치가 끝나면, Tensorflow를 설치하기 위해 Anaconda3의 Anaconda Prompt로 들어간다. 3. conda install tensorflow-gpu 를 입력하고 proceed? 에서 y를 입력하면, 텐서플로우의 설치는 끝난다! 4. CUDA 8.0을 설치하기.  ** Tensorflow는 CUDA 8.0 (2018년 1월 9일 기준)만 지원하므로, 반드시 8.0을 깔아야한다. CUDA Toolkit 8.0 다운로드 링크 본인 사양에 맞는 걸 선택하여 설치한다. Base Installer만 설치해도 된다. 5. cuDNN을 다운로드 받는다. Deep Neural Network를 컴퓨팅을 지원하는 라이브러리를 다운로드 받는다. cuDNN 다운로드 링크 여기서 NVIDIA의 회원가입이 필요하다. 회원가입한다. 알집 파일을 다운로드 받는데, 알집 내부의 파일들을 모두 복사하여, 설치 폴더에 덮어쓴다. 6. 확인하기.  텐서플로우 코드를 구해서 돌려본다.  추천하기로는  김성훈 홍콩과기대 교수의 텐서플로우 튜토리얼 파일 을 구해서 돌려보면 확실할 거이다. github의 사용법은 잘 찾아보시길.

Tensorflow-gpu는 CUDA 8.0만 지원한다.

Tensorflow-gpu 까지 설치하고 이런 에러가 떴다.   이런 경우는 버전에 맞지않는 cuda 를 설치해 그런 것이다 . 나의 경우에는 최신버전에 제일 좋겠지 하면서 , CUDA 9.1 을 설치해서 에러를 만났다 . 주의해야 할 점은 Tensorflow-gpu 는 CUDA 8.0 만 지원한다는 점이다 . 따라서 이런 에러를 만나면 CUDA8.0으로 다시 깔자 < 에러메시지 전문 > runfile('C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py', wdir='C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python') Traceback (most recent call last):   File "<ipython-input-12-f12d08712632>", line 1, in <module>     runfile('C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python/pywrap_tensorflow_internal.py', wdir='C:/Users/user/Anaconda3/lib/site-packages/tensorflow/python')   File "C:\Users\user\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 710, in runfile     execfile(filename, namespace)   File "C:\Users\user\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", li...