본문 바로가기

우분투 (Ubuntu)

(Ubuntu 16.04) Tensorflow-gpu, Pytorch 설치, Anaconda, Sublime Text 3, Nvidia driver, CUDA, cuDNN 총정리

* 구글에 퍼져있는 여러 방법들 중 필요한 부분들만 뽑아서 정리한 포스트입니다.

 

클린한 우분투 16.04에 tensorflow, pytorch를 설치해보자. 클린하지 않고 새 버전으로 다시 깔고싶은 사람도 보자.

 

시작하기 전에 nvidia 잔여 파일들을 모두 제거해야한다. 그렇지 않으면 충돌로 멘탈이 터진다. 

$ sudo apt-get --purge remove nvidia*

 

아래 과정에서 명시되어 있지 않은 에러가 나타난다면 무조건 충돌이고 에러 하나하나 구글링 해봤자 꼬리물기 밖에 되지 않기 때문에 처음부터 다시 차근차근히 설치하는걸 추천한다. 이 과정대로라면 전혀 문제 없이 설치할 수 있다. 

 

 

1. Nvidia driver 설치

자신의 gpu에 맞는 최신 드라이버를 찾아서 설치하자. 반드시 최신걸 받아야 최신 cuda 설치와 충돌하지 않는다.

https://www.nvidia.com/en-us/drivers/unix/

필자는 nvidia-430을 설치했다. 설치하는데 15분~20분 정도 걸린다. (출처: https://www.mvps.net/docs/install-nvidia-drivers-ubuntu-18-04-lts-bionic-beaver-linux/)

 

 

Unix Drivers | NVIDIA

Linux x86_64/AMD64/EM64T Latest Long Lived Branch Version: 430.40 Latest Short Lived Branch Version: 435.21 Latest Legacy GPU version (390.xx series): 390.129 Latest Legacy GPU version (340.xx series): 340.107 Latest Legacy GPU version (304.xx series): 304

www.nvidia.com

$ sudo add-apt-repository ppa:graphics-drivers

$ sudo apt-get update

$ sudo apt-get install screen

$ screen

$ sudo apt-get install nvidia-430

 

reboot 하고 driver가 정상적으로 설치되었는지 확인하자.

 

$ nvidia-smi

 

2. CUDA 10.0 설치

nvidia 홈페이지에서 linux, x86_64, Ubuntu, 16.04, deb(network)을 다운받는다.

https://developer.nvidia.com/cuda-10.0-download-archive

 

CUDA Toolkit 10.0 Archive

*/

developer.nvidia.com

설명대로 설치 하자. 만약 gpgkeys: HTTP fetch error 1: unsupported protocol 이 뜨면 gnupg-curl을 설치하면 된다.

 

$ sudo apt-get install gnupg-curl

 

CUDA 10.0을 설치하기 위해서는 반드시 cuda-10-0 을 설정해줘야한다. 그렇지 않으면 마음대로 최신 버전을 설치할 것이다. 

$ sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb

$ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub 

$ sudo apt-get update

$ sudo apt-get install cuda-10-0

 

reboot 하고 넘어가자.

 

 

3. cuDNN 설치

아래 링크로 가서 회원가입 후 버전에 맞는 cuDNN 압축 파일을 다운 받는다. cuDNN Library for Linux 를 받으면 된다.

https://developer.nvidia.com/cudnn

 

NVIDIA cuDNN

*/

developer.nvidia.com

압축을 풀고 압축 폴더 안에 파일들을 지정된 장소로 옮긴다. (출처: https://goodtogreate.tistory.com/entry/TensorFlow-GPU-버전-우분투-1604에-설치-하기)

$ tar xvfz cudnn-~~~~~.tgz

$ sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include

$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64

$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

$ sudo apt-get install libcupti-dev

 

환경변수를 설정한다. 그래야 아무데서나 cuda를 쓸 수 있다.

$ vi ~/.bashrc 

 

아래 세 줄을 맨밑에 추가한다.

export PATH=/usr/local/cuda/bin:$PATH 

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" 

export CUDA_HOME=/usr/local/cuda

 

reboot 하여 변경한 환경변수를 적용하자.

 

CUDA랑 cuDNN이 제대로 설치되었는지 확인해보자.

$ nvcc --version

Cuda 버전을 알려준다. (10.0)

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

cuDNN 버전을 알려준다. (7.6.3)

 

4. Anaconda 설치

Anaconda는 가상환경을 만들어주는 프로그램이다. 파이썬 virtual env를 사용해도 되지만 필자는 anaconda가 이해하기 쉽고 비교적 간단하기 때문에 anaconda를 추천한다.

 

*** 가상환경 이해하기 ***

Tensorflow, Pytorch는 파이썬에서 사용하는 패키지에 불과하다. 패키지를 설치해서 그 함수들을 사용하는 것이다. 이때 텐서플로우를 여러 버전을 동시에 사용하고 싶다거나 삭제하고 재설치 등 패키지를 이리저리 만지다보면 충돌이 일어날 수 있고 파이썬이 매우 더러워진다. 따라서 메인 컴퓨터에 다 설치하기 보다 방을 따로 만들어서 그 방에 텐서플로우를 설치하고 또 다른 방을 만들어서 파이토치를 설치하는 식으로 하는데 이 방을 가상환경이라고 한다.

 

Anaconda 홈페이지에서 최신 anaconda 3 또는 2를 다운받아서 설치한다. 파이썬 버전에 따라 나뉘기는 하지만 어차피 가상환경을 만들 때 파이썬 버전을 설정해줄거라 크게 상관 없다.

https://www.anaconda.com/

 

Anaconda | The World's Most Popular Data Science Platform

Anaconda is the standard platform for Python data science, leading in open source innovation for machine learning. Develop, manage, collaborate, and govern at scale with our enterprise platform.

www.anaconda.com

$ bash ./Anaconda3-~~~~.sh

모든 질문에 yes와 enter.

 

 

5. 가상환경 만들기

Anaconda를 설치하고 terminal을 다시 열면 terminal 앞에 (base) 가 붙었을 것이다. 이제 위에서 설명한 가상환경을 만들 것이다. Anaconda의 기본 명령어는 conda 이다. Tensorflow 라는 이름의 가상환경을 만든다고 한다면

 

(base) $ conda create -n Tensorflow python=3.6

 

여기서 파이썬 버전을 3.6이 아닌 다른 버전을 사용하고 싶다면 버전을 명시해주면 된다. 가상환경 안에서는 파이썬 버전을 바꾸는건 추천하지 않는다. 그냥 새로 하나 만드는게 낫다.

이제 이 가상환경에 들어가보자.

 

(base) $ conda activate Tensorflow

 

이러면 (base)가 가상환경 이름인 (Tensorflow)로 바뀐걸 알 수 있다. 이제 이 안에서 행해지는 모든 것은 이 가상환경 안에 제한된다.

 

 

6. Tensorflow-gpu 설치

보통 package 들은 pip로 설치를 많이하지만 anaconda에서는 되도록이면 conda로 설치하는 것이 좋다. 패키지 이름이 numpy 라면 conda install numpy 로 설치할 수 있다. 특정 채널에서 패키지를 다운 받고싶다면 -c 로 채널을 설정할 수 있다. tensorflow-gpu 를 anaconda cloud 에서 다운받으려 한다면 -c anaconda 를 추가하면 된다. cv2 같은 경우에는 conda-forge 채널에서 불러오게 되어있다. conda install 만으로 안된다면 구글에 채널을 검색해보는 것이 좋다.

 https://anaconda.org/anaconda/tensorflow-gpu

 

Tensorflow Gpu :: Anaconda Cloud

License: Unspecified 158714 total downloads Last upload: 20 days and 22 hours ago Installers conda install linux-ppc64le  v1.2.1 linux-64  v1.14.0 win-64  v1.14.0 To install this package with conda run: conda install -c anaconda tensorflow-gpu Description

anaconda.org

먼저 Tensorflow 가상환경으로 들어가자.

(base) $ conda activate Tensorflow

(Tensorflow) $ conda install -c anaconda tensorflow-gpu

 

anaconda cloud 가 가지고 있는 최신 tensorflow를 설치해준다. (현재 1.14) 만약 특정 버전을 받고싶다면 뒤에 == 버전 넘버 를 써주면 된다.

 

가상환경에서 나오고 싶다면

(Tensorflow) $ conda deactivate

 

 

7. Pytorch 설치

Tensorflow랑 pytorch를 동시에 사용하면 충돌이 일어날 수 있다. (실제로 텐서플로우와 파이토치를 각각 다른 gpu에서 돌렸는데 텐서플로우가 gpu memory fault가 났다.) 따라서 Pytorch라는 가상환경을 또 만들어줄거다.

 

(base) $ conda create -n Pytorch python=3.6

 

Pytorch는 홈페이지에서 자신의 사양에 맞는 패키지 명령어를 알려준다. 똑같이 conda로 설치해주자.

 https://pytorch.org/

 

PyTorch

An open source deep learning platform that provides a seamless path from research prototyping to production deployment.

pytorch.org

(Pytorch) $ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch

 

 

8. Sublime Text 3 에디터 사용하기

Windows에서 python editor 최강자가 Pycharm이라면, Ubuntu에는 Sublime Text 3 가 있다!

Pycharm의 어려운 project 만들기, project interpreter, multi window 등등 이런 복잡하고 잡다한건 하나도 없는 클린하고 가벼운 Sublime Text 3를 쓰자.

 

이 링크로 들어가서 기본적인 설치를 하고 오자. 가장 중요한 5. 단축기 설정 까지만 하면 된다. 최고 편리하다.

https://webnautes.tistory.com/454

 

Sublime Text 3와 함께 Python 프로그래밍(Windows / Ubuntu)

Sublime Text 3에서 Python 프로그래밍을 하기 위해 필요한 설정을 다루고 있습니다. 1. Python 설치 2. Sublime Text 3 설치 3. Sublime Text 3 기본 사용방법 4. Package Control 5. sublimeREPL 플러그인 설치..

webnautes.tistory.com

Tensorflow를 쓰고 싶다면 먼저 Tensorflow 가상환경을 열고

(base) $ conda activate Tensorflow

 

이 안에서 Sublime Text 3를 열면

(Tensorflow) $ subl

 

이 가상환경의 패키지들을 모두 쓸 수 있다. (Pycharm에서 일일히 interpreter를 찾아주지 않아도 되고 직관적이다.)

또한 단축키 설정을 해놓으면 터미널에서 실행하지 않고 subl 에서 바로 코드를 실행하고 결과를 볼 수 있다. 

단점은 한 가상환경에서 여러 코드를 동시에 돌릴 순 있지만 여러 가상환경을 동시에 열순 없고, 이미지를 plot하거나 show하는 기능이 없어서 중간에 이미지를 확인하려면 저장하고 폴더에서 확인하는 방식을 쓰고 있다.