듀얼 부팅 [Windows10/Ubuntu] ML/DL 환경세팅 : Part 2 - 우분투에 tensorflow, pytorch 설치 ! (with gpu)
-
date_range 06/01/2020 10:16 perm_identity 허재혁 infosortSettinglabel
우분투를 설치하고 이제 프로젝트를 진행하려면 pytorch와 tensorflow를 설치해야한다. 나는 아나콘다로 설치해서 할 계획이다. 최근에는 conda로 tensorflow를 설치하면 CUDA와 cuDNN을 알아서 같이 설치해준다고 하지만 윈도우 환경에 맞추기위해서 따로 설치하도록 한다.
설치 환경은 아래와 같다.
- tensorflow 2.0.0
- pytorch. 1.3.1
- nvidia-driver 440
- CUDA 10.0
- cudnn 7.6.5.32
우선 그래픽카드 드라이버가 몇인지부터 확인해야한다. 확인해보니 440 이란다! 오른쪽 위에 CUDA 10.2이라고 떠있는데 이거는 설치된 버전을 얘기하는게 아니라 설치가능한 최신 버전을 말한다.
$ nvidia-smi
확인했다면 CUDA가 깔려있는지 확인해보자. 결과는 nvcc를 설치해 달라는 말이였다. 그러면 CUDA가 설치되지 않았다는 얘기다.
$ nvcc --version
cuDNN은 아래와 같이 cudnn.h 파일을 읽으면 알 수 있지만 CUDA가 설치되어있지 않기 때문에 따로 깔려있지 않은것 같다. 그래도 한번 찾아보기위해 find
명령어로 검색해보도록 한다.
$ cat /usr/include/cudnn.h | grep CUDNN_MAJOR -A 2
$ find / -name cudnn.h
1. CUDA 설치
CUDA 10.0 버전은 여기에서 다운받을 수 있다. 나는 Linux / x86_64 / Ubuntu 이기 때문에 그대로 찾아 눌러주고 마지막 설치파일은 deb (network)로 했다.
다운로드가 끝났다면 다운로드 받은 경로로 이동해서 아래 명령문을 차례차례 실행한다.
$ sudo dpkg -i cuda-repo-ubuntu1804_10.0.130-1_amd64.deb
$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda-10-0
모두 설치되었다면 또 재부팅! 재부팅을 몇 번 하는지 모르겠다.
$ sudo reboot
재부팅 후에는 이제 CUDA 경로를 환경 변수에 추가해준다.
$ sudo gedit ~/.profile
export PATH=/usr/local/cuda-10.0/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
저장했다면 이제 활성화 시켜준다.
```bash
$ source ~/.profile
그리고 다시 nvcc 해보면 이전에는 나오지 않았지만 이제는 10.0 버전이 잘 잡혀있는 걸 확인할 수 있다.
$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
2. cuDNN 설치
cuDNN은 7.6.5.32 버전으로 설치한다. cuDNN은 여기에 들어가서 로그인 한 후에 다운받을 수 있다.
아래 세 가지 목록을 모두 다운 받고 다운받은 경로로 이동 후 명령어를 순서대로! 입력해서 설치한다.
- cuDNN Runtime Library for Ubuntu18.04 (Deb)
- cuDNN Developer Library for Ubuntu18.04 (Deb)
- cuDNN Code Samples and User Guide for Ubuntu18.04 (Deb)
$ cd ~/Downloads/
$ sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.0_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.0_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.6.5.32-1+cuda10.0_amd64.deb
모두 설치가 되었다면 이제 잘 되는지 다운받은 sample로 MNIST를 돌려본다. test passed라고 나온다면 성공이다.
$ cd /usr/src/cudnn_samples_v7/mnistCUDNN/
$ sudo make clean && sudo make
$ ./mnistCUDNN
3. Pytorch 설치
이제 pytorch를 설치해본다. 설치 방법은 아래 한 줄이면 끝이다. 단! cudatoolkit은 이전에 받은 CUDA 버전과 동일한 버전으로 설치한다.
$ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
4. Tensorflow 설치
tensorflow는 gpu 버전을 또 설치해야한다. 이제 2.0 버전이 풀렸기 때문에 설치하면 알아서 2.0이 설치된다.
$ conda install tensorflow
$ conda install tensorflow-gpu
사실 이 과정은 생략된 부분이 있다. tensorflow만 설치했을때는 2.0이 잘 설치되었는데 tensorflow-gpu를 설치하니 1.14로 바꼈다. 그러나 다시 아래 명령어로 2.0을 설치하니까 tensorflow-gpu도 2.0으로 설정되었다.
$ conda install tensorflow==2.0.0
pytorch와 tensorflow가 모두 설치됐다면 이제 gpu가 되는지 확인해보다. gpu 사용확인은 생각보다 간단하게 해볼 수 있다.
import torch
import tensorflow as tf
print(torch.cuda.is_available())
print(tf.test.is_gpu_available())
모두 True라고 출력됐다면 gpu사용을 확인한것이다!