ubuntu 18.04 LTS DeepLearning Setting

2 minute read

ubuntu 18.04 server 컴퓨터에 deep learning 환경을 구축하는 방법과, 이의 개인적인 정리 목적의 글임을 밝힙니다.
* 설정이 잘 안먹히면 `sudo reboot`

1. 제원

ubuntu 18.04 
Geforce GTX 1080 Ti

2. ubuntu 18.04 iso booting USB 준비

3. ubuntu 18.04 format

  • bios setting: F12
  • third-party program install: yes
  • partition:
    • booting disk
        ext4 /boot 1GB : Primary, Begging of this space
        swap 100GB (99999로 seting) : logical, Begging of this space
        ext4 /var 나머지 : logical, Begging of this space
      
    • hard disk
        / 3TB (root 폴더로 /home 등이 설정됨, 전체 용량으로 설정)
      

4. ip 및 ssh 설정

1. ip 확인

ifconfig

2. ssh 설정

$ dpkg -l | grep openssh
ii openssh-client 1:7.6p1-4 amd64 secure shell (SSH) client, for secure access to remote machines

$ sudo apt-get install openssh-server
$ dpkg -l | grep openssh
ii openssh-client 1:7.6p1-4ubuntu0.3 amd64 secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:7.6p1-4ubuntu0.3 amd64 secure shell (SSH) server, for secure access from remote machines
ii openssh-sftp-server 1:7.6p1-4ubuntu0.3 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines

$ sudo apt install net-tools
$ ifconfig
$ sudo nano /etc/ssh/sshd_config
$ sudo service ssh start
$ ifconfig
$ sudo ufw enable
Firewall is active and enabled on system startup

$ sudo ufw allow 22
Rule added
Rule added (v6)

5. nvidia driver install

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
$ sudo apt-get install nvidia-driver-460
$ sudo reboot

nvidia-smi로 확인

6. CUDA

CUDA toolkit 11.0 
  1. deb(local)로 설치
    $ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
    $ sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda-repo-ubuntu1804-11-0-local_11.0.2-450.51.05-1_amd64.deb
    $ sudo dpkg -i cuda-repo-ubuntu1804-11-0-local_11.0.2-450.51.05-1_amd64.deb
    $ sudo apt-key add /var/cuda-repo-ubuntu1804-11-0-local/7fa2af80.pub
    $ sudo apt-get update
    $ sudo apt-get -y install cuda
    
  2. path 설정
    sudo nano ~/.bashrc
    

    가장 아래에 path를 추가:

    export PATH=/usr/local/cuda-11.0/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    
source ~/.bashrc

7. cudnn

  1. cuDNN Libary for Linux (x86)을 통해 tar file을 다운로드 2.
     $ cd ~/Downloads
     $ tar -xzvf cudnn-x.x-linux-x64-v8.x.x.x.tgz
     $ sudo cp 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*
    
    • 중간에 -P는 심볼릭 링크가 깨지지 않도록 해주는 역할 (하지만 이번 설치에서는 사용하지 않았음! 안해도 큰 오류가 아직 발생하지 않은 것으로 보아 혹시 나중에 에러가 난다면 이를 다시 확인하는 것이 필요할듯)
    • 그리고 중간의 cuda에 버전이름 붙이지 말것! /usr/local/cuda 폴더에 header 파일이 복사되서 저장되고, 해당 cuda 폴더가 심볼릭 링크를 통해 cuda-11.0을 가리키는게 올바른 설정임
  2. sudo reboot

8. anaconda

  1. anaconda 홈페이지에서 .sh 파일 다운로드
  2. $ cd ~/.Downloads
    $ bash Anaconda3-2020.02-Linux-x86_64.sh
    $ source ~/.bashrc
    $ sudo reboot
    

9. virtualenv & GPU check

$ conda create -n tf2 python=3.7
$ pip install tensorflow
  • GPU check
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
[name: "/device:CPU:0" 
device_type: "CPU" 
memory_limit: 268435456 
locality { } incarnation: 876633105033209013 
, name: "/device:GPU:0" 
device_type: "GPU" 
memory_limit: 10068531648 
locality { 
	bus_id: 1 
	links { 
	} 
} 
incarnation: 12862265301003951711 
physical_device_desc: "device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:03:00.0, compute capability: 6.1" ]

성공적으로 GPU가 인식되는 것을 확인할 수 있다!

10. mac ssh 접속 error

  • 인터넷 접속 등의 오류로 host ip가 변경되는 경우 이러한 오류가 발생
  • 오류 메세지
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@  WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
...
Host key verification failed.
  • 해결: 기존에 접속했던 host의 key를 삭제하고 새로 받아야 함!
(base) anseunghwan@anseunghwan-ui-iMac-Pro ~ % cd .ssh
(base) anseunghwan@anseunghwan-ui-iMac-Pro .ssh % ls
config  known_hosts
(base) anseunghwan@anseunghwan-ui-iMac-Pro .ssh % sudo nano known_hosts

= 기존 ip 주소로 시작하는 host key 삭제!

Comments