ubuntu를 이용한 딥러닝 Server 설치하기 3

ubuntu를 이용한 딥러닝 Server 설치하기 3

본격적으로 딥러닝을 하기 위한 준비과정

Installation of Ubuntu 18.04 LTS for Deep Learning Computer -2

Ubuntu with mac, 원격 접속 연결하기

저번 글에서는 공유기를 이용한 고정ip설정과 포트포워딩, 원격 접속, 원격 파일 전송에 대해서 알아봤습니다. 이번 글에서는 본격적으로 딥러닝을 하기 위한 Cuda와 CuDnn, tensorflow, keras 설치에 이어 jupyter notebook 연결까지 해보겠습니다.

설치하는 순서는 다음과 같습니다.

  • nvidia 그래픽 드라이버 설치
  • Cuda 설치
  • CuDnn 설치
  • tensorflow, keras 설치
  • jupyter notebook 연결

1. nvidia 그래픽 드라이버 설치

그래픽 드라이버 설치는 겜돌이들에게는 너무나 익숙한 일입니다. 예전엔가 카트를 하고 싶었는데 화면이 까맣게 나와서 네이버 지식인에 물어봤더니 드라이버 설치를 하라고 했던 기억이 나네요. 그래픽 드라이버 회사의 사이트로 들어가서 그래픽 드라이버를 받아서 설치하면 끝입니다. 같은 방식으로 Ubuntu 서버에도 그래픽 드라이버 종류를 알아본 뒤에, 이에 맞는 드라이버를 받아서 설치해주면 됩니다. 하지만 설치를 잘못하게 되면 검은화면에서 뚝뚝뚝 에러메서지만 흘러나오며 엔터키도 먹지 않는 악몽을 경험하게 될 것입니다.

자신의 그래픽 카드가 뭔지는 컴퓨터를 사신 분이 잘 아실 것입니다. 그 정보를 가지고 http://www.nvidia.com/Download/Find.aspx?lang=en-us nvidia 홈페이지에 접속한 후에 그래픽 카드 정보를 입력하고 알맞은 그래픽 드라이버의 Version을 확인 합니다.

1
$ apt-cache search nvidia

서버로 돌아와 다음 명령어를 이용해 설치가능한 드라이버를 확인해 보고 본격적으로 설치해봅니다.

1
$ sudo apt-get install nvidia-xxx

이제 xxx에 들어갈 적절한 드라이버 Version을 입력하고 설치를 해주면 됩니다. 보통은 정상적으로 설치가 되는데,

1
2
3
4
5
Errors were encountered while processing:
nvidia-xxx
libcuda1-xxx
nvidia-opencl-icd-xxx
E: Sub-process /usr/bin/dpkg returned an error code (1)

이런 식의 에러가 날 수 있습니다. 이런 경우에는

1
2
$ sudo mkdir /usr/lib/nvidia
$ sudo apt-get install nvidia-xxx

를 이용해서 nvidia 폴더를 만들어주고 설치를 진행하면 됩니다.

1
sudo apt-get install dkms nvidia-modprobe

그리고 드라이버 종류에 상관없이 위의 패키지를 설치해주고 그래픽 드라이버가 로드 될 수 있도록 reboot 시켜줍니다.

설치 가이드 출처

Trouble shooting

설치 후에 뿌듯 뿌듯한 마음으로 reboot 명령어를 내리고 화면을 천천히 지켜보고 있다 보면, 심상치 않은 메세지가 뚝뚝뚝 나오고 엔터키도 듣지 않는 것처럼 보일 때가 있습니다. 저 또한 멘탈이 깨져버려서 10붕동안은 멍하니 쳐다보고만 있었습니다.

이유는 여러가지가 있겠습니다만, 저의 경우에는 설치된 드라이버 버전이 서버와 맞지 않아서 생기는 문제였습니다. 이럴 경우에는 설치된 드라이버를 삭제하고 다시 설치하는 방법을 생각해 볼 수 있겠습니다.

1
sudo apt purge nvidia*

위의 명령어로 nvidia관련 드라이버를 싹 날려주고 reboot하여 맞는 드라이버를 설치해 줍니다.

2.Cuda, CuDnn 설치

이제 CUDA 10.0과 cuDNN 7.5 설치를 진행해봅니다. Cuda는 다음의 명령어로 설치해 줍니다.

1
sudo apt install cuda-10-0

설치가 되는데 시간이 좀 걸릴 수 있습니다. 설치가 끝나면 제대로 설치가 되었는지를 확인하기 위해서

1
nvcc --version

위의 명령어를 이용해 Cuda Compiler정보를 확인합니다. nvcc정보가 잘 나오면 설치가 잘 된 것입니다.

이제 CuDnn을 설치해야 하는데, CuDnn은 Nvidia에서 공개적으로 다운받을 수 있게 해놓지 않았습니다. Nvidia에 회원으로 등록을 해야 CuDnn을 다운 받을 수 있게 해줍니다. 따라서 https://developer.nvidia.com/cudnn 이 사이트로 들어가 회원가입을 해주고 우리는 Cuda 10.0을 설치해줬으니까 10.0에 맞는 Cudnn 7.5를 다운로드 해줍니다. 다운이 되었으면 저의 경우는 Mac을 이용해서 받았기 때문에, 이전 글에서 다루었던 sftp를 이용해서 파일을 전송했습니다.

파일을 이동시킨 후에 tar로 말려져 있는 파일을 풀어줍니다.

1
tar -zxvf cudnn-10.0-linux-x64-v7.5.x.x.tgz

7.5뒤의 버전은 다를 수 있으니 잘 확인하시고 수정해 넣으시면 됩니다. 이제 압축을 푼 파일을 cuda폴더에 복사해 넣어줍니다.

1
2
3
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64/

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.0/include/

마지막으로 이동시킨 파일들에 대한 권한을 부여해주면 됩니다.

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

*추가

1
2
#Nvidia에서 필요한 파일이라고 하네요
sudo apt-get install libcupti-dev

bashrc에 환경변수를 추가해주는 글을 많이 봤는데, 저의 경우에는 굳이 입력을 안해도 잘 인식하는 걸 봐서, 넣지 않았습니다. 제대로 불러오지 못한다면

1
sudo vi ~/.bashrc
1
2
3
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64\${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

를 추가해 주세요

3. Tensorflow, Keras 설치

Keras 설치에 앞서, 백엔드로 사용하는 Tensorflow를 설치해 줍니다. 이제 설치는 정말 간단합니다.

1
pip3 install --upgrade tensorflow-gpu

python3버전의 tensorflow를 설치해줍니다. cpu 버전을 설치하고 싶다면 -gpu를 빼주면 됩니다.

conda 가상환경을 만들었다면, 실행시킨 후에 필요 라이브러리를 설치하고 Keras를 최종적으로 설치하면 끝입니다!

1
2
3
4
5
conda activate your_name
(your_name) conda install h5py
(your_name) conda install graphviz
(your_name) conda install pydot
(your_name) conda install keras

4. Jupyter Notebook 설치

먼저 가상환경으로 들어가주고 pip를 이용해 jupyter notebook을 설치해 줍니다.

1
2
conda activate your_name
pip install jupyter notebook

설치가 되었지만, 외부에서 접속을 해서 jupyter notebook을 사용하려면 아직 몇가지 설정이 더 남았습니다.

1
jupyter notebook --generate-config

를 이용해서 jupyter 설정파일을 만들어 준 후에

1
2
3
4
5
ipython #입력 후 In[1]이 나오면,
from notebook.auth import passwd
Enter password: #원하는 비밀번호 입력
Verify password:
Out[2]: 'sha1:f24baff49ac5:863dd2ae747212ede58125302d227f0ca7b12bb3'

이렇게 하고 나면 shai로 시작하는 암호문 같은 게 있습니다. 이걸 복사해서 잘 적어두시고, jupyter_notebook_config.py를 열어서

1
2
3
4
5
# The IP address the notebook server will listen on. 
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.port_retries = 50
c.NotebookApp.port_retries = 8888
c.NotebookApp.open_browser = False

위와 같이 수정해 주고 jupyter notebook --ip=0.0.0.0으로 실행해주면 jupyter notebook이 짠 하고 등장할 것입니다.

ubuntu를 이용한 딥러닝 Server 설치하기 3

http://tkdguq05.github.io/2019/12/08/ubuntu3/

Author

SangHyub Lee, Jose

Posted on

2019-12-08

Updated on

2023-12-08

Licensed under

Comments