가장 기초적이지만 할때마다 번거롭고 우분투를 수십번씩 지웠다 깔도록 만드는 딥러닝 개발환경의 기본 구축에 대해 정리하려한다.
이 설치법은 어디까지나 명시된 환경에서 가능한 부분이며 향후 버전이 달라질 경우 안될 수 있다.
Ubuntu 16.04(64bit), CUDA 8.0, cuDNN 5.1이 환경을 기반으로 Caffe와 Tensorflow를 설치해 사용했으며 CPU, GPU 사양은 다음과 같다.

Tensorflow를 설치하려면 Ubuntu 16.04(64bit), Tensorflow Install포스팅을 확인하면 된다.
Caffe를 설치하려면 Ubuntu 16.04(64bit), Caffe Install포스팅을 확인하면 된다.

  • CPU : Intel Core i7-3820
  • GPU: GeForce GTX 1060 6GB

우분투를 처음 설치하고 나서 본격적인 설치 작업을 수행하기 전에 패키지 업데이트를 수행한다.

sudo apt-get update
sudo apt-get upgrade

NVIDIA graphic driver를 설치하기 위해 다음과 같이 명령어를 입력한다.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

완료되면 왼쪽 탭 메뉴에 톱니바퀴 모양의 아이콘으로 되어있는 System Settings에 들어가서 Software & Updates -> Additional Drivers 탭으로 이동하자.
CUDA 8.0은 최소 367.4x 이상의 드라이버가 필요하다. 나는 375로 설치했다.
그리고 스크롤을 내려보면 Using Processor microcode firmware for intel CPUs from intel-microcode(proprietary)라는 선택지가 있다.
같이 선택한 후 Apply Changes 버튼을 클릭해 설치한다. 설치가 끝나면 reboot을 해준다.

재부팅이 완료되고 터미널에서

nvidia-settings

를 입력하면 NVIDIA X Server Settings가 실행된다. 이러면 드라이버 설치가 완료된 것이다.

이제 CUDA Toolkit을 설치해보자. 참고로 설치 버전은 8.0이다.
CUDA Download에서 회원가입을 하고 로그인을 한 뒤

Select Target Platform 메뉴에서 Linux -> x86_64 -> Ubuntu -> 16.04 -> runfile(local) 을 다운받는다.
이때 다운받은 경로를 기억한 후 다운이 완료되면 runfile을 실행한다.

cd <다운로드 경로>
sudo sh cuda_8.0.44_linux.run

실행하면 End User License Agreement가 나오게 되는데 이때 Ctrl+c를 누르면 다음과 같은 질문이 나오고

accept/decline/quit: accept
이후엔 옵션을 설정하는 부분으로
Install NVIDIA Accelerated Graphics Driver for Linu….?이 질문은 이미 위에서 설치했기 때문에
(y)es/(n)o/(q)uit: n
Install the CUDA 8.0 Toolkit? 당연히 대답은
(y)es/(n)o/(q)uit: y
Enter Toolkit Location [ default is /usr/local/cuda-8.0 ]:
엔터를 쳐서 default를 사용한다.
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y

Install the CUDA 8.0 Samples?
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location [ default is /home/사용자 이름 ]:
엔터를 쳐서 default를 사용한다.

설치가 진행되고 끝나면 Summary를 통해 결과를 확인할 수 있다. 우리가 확인해야할 Summary는

Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-8.0
Samples: Installed in /home/사용자 이름

이런 내용이 나오면 설치가 정상적으로 완료된 것이다.
이제 PATH variable을 설정해야한다.

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

이렇게 출력되면 된다.

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep__4_22:14:01_CDT_2016
Cuda compilation tools, release 8.0, V8.0.44

마지막으로 cuDNN 5.1을 설치한다.
cuDNN Download 에서 cuDNN v5.1과 CUDA 8.0에 해당하는 버튼을 누르고
cuDNN v5.1 Library for Linux를 클릭해 다운받는다.

cd <다운로드 경로>
sudo tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
cd cuda
sudo cp include/cudnn.h /usr/local/cuda/include
sudo cp lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

이때 출력 화면에 CUDNN_MAJOR가 포함되어 있으면 제대로 설치된 것이다.