CUDA + cuDNN + Tensorflow installation guide (Ubuntu)
My Environment
OS : Ubuntu 16.04
GPU : GT 940MX (2G)
1. Blacklist 설정
Ubuntu 16.04버전 설치시 기본으로 탑재된 그래픽카드 드라이버가 CUDA설치에 문제를 일으킬 수 있으므로 블랙리스트 설정을 통해 실행을 막습니다.
편집기로 아래 파일을 수정합니다.
1 | sudo vi /etc/modprobe.d/blacklist-nouveau.conf |
아래 내용을 입력하고 저장합니다.
1 | blacklist nouveau |
아래 명령을 통해 커널 정보를 업데이트한 후 재부팅합니다.
1 | sudo update-initramfs -u |
1 | sudo reboot |
2. NVIDIA 드라이버 설치
NVIDIA 홈페이지에 접속하여 드라이버를 로컬에 다운로드 받습니다.
사이트 URL : http://www.nvidia.co.kr/Download/index.aspx?lang=kr
NVIDIA 드라이버 설치는 터미널 환경에서 진행하기를 권장합니다.
아래 키를 입력하여 터미널환경으로 접속합니다.
Ctrl
+ Alt
+ f1
or ~f9
아래 명령어를 입력하여 우분투 윈도우 그래픽 서비스를 중단시킵니다.
1 | sudo service lightdm stop |
사전에 설치된 NVIDIA 그래픽 드라이버 제거합니다.
이 부분은 넘어가셔도 상관없으나 아래 명령을 통해 사전에 설치된 그래픽 드라이버를 제거할 수 있습니다.
1 | sudo /usr/bin/nvidia-uninstall |
다운로드된 NVIDIA 그래픽 드라이버 설치파일 경로로 이동하여 다운로드한 파일을 실행시킵니다.
1 | cd ~/Downloads |
설치가 완료되면 nvidia-smi
명령어를 실행해봅니다. nvidia-smi
는 그래픽 카드 디바이스 모니터링 기능을 제공합니다.
1 | nvidia-smi |
2.1 apt 명령을 통한 설치
드라이버 설치파일을 다운로드하여 실행시키는 방법 외에, NVIDIA의 레포지토리를 등록하여 apt
명령으로 설치가 가능합니다.
아래 명령을 통해 그래픽 드라이버 레포지토리를 등록한 후 설치를 진행할 수 있습니다.
1 | sudo add-apt-repository ppa:graphics-drivers/ppa |
3. CUDA 9.0 설치
CUDA 설치를 진행하기 전에 사용할 딥러닝 프레임워크(keras, tensorflow, chainer 등)버전과 CUDA버전이 호환되는지 필수적으로 확인해야합니다.
현재 글을 쓰는 시점에서(2018.6.4) 최신 CUDA 버전은 9.2 이지만 2018년 4월 말에 공개된 Tensorflow 1.8
버전은 CUDA 9.0
을 지원하기 때문에 해당 버전 설치를 진행하겠습니다.
NVIDIA의 CUDA 다운로드 페이지에 접속하여 설치파일을 다운로드 받습니다.
CUDA 9.0 다운로드 URL : https://developer.nvidia.com/cuda-90-download-archive
아래 그림과 같이 Ubuntu 16.04 버전에 해당하는 설치파일을 다운로드 받습니다.
CUDA도 NVIDIA 그래픽 드라이버 설치와 동일하게 윈도우 그래픽 을 중단한 상태로 진행해야합니다.
Ctrl
+ Alt
+ f1
or ~f9
1 | sudo service lightdm stop |
다운로드한 CUDA 설치 파일 경로로 이동하여 실행시킵니다.
1 | cd ~/Downloads |
설명문이 나오면 Enter
혹은 space
를 입력하여 끝까지 읽고 (Ctrl
+ c
로 스킵 가능) 다음처럼 진행합니다.
“”Do you accept the previously read EULA? accept/decline/quit: accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81? ((y)es /(n)o/(q)uit) : y
Do you want to install the OpenGL libraries? ((y)es /(n)o/(q)uit) : n
Do you want to run nvidia-xconfig?
This will update the system X configuration file so that the NVIDIA X driver
is used. The pre-existing X configuration file will be backed up.
This option should not be used on systems that require a custom
X configuration, such as systems with multiple GPU vendors.
((y)es /(n)o/(q)uit) : n
Install the CUDA 9.0 Toolkit? ((y)es /(n)o/(q)uit) : y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ] : Enter
Do you want to install a symbolic link at /usr/local/cuda? ((y)es /(n)o/(q)uit) : y
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/khk ] : Enter
위 까지 진행하시면 설치가 시작되며 다음으로 cuDNN 설치를 진행하시길 바랍니다.
4. cuDNN 설치
cuDNN은 GPU 가속을 이용할 수 있도록 NVIDIA에서 제공하는 라이브러리입니다.
NVIDIA의 cuDNN 다운로드 링크를 접속하여 간단한 멤버십 가입을 통해 다운로드를 진행합니다.
다운로드 URL : https://developer.nvidia.com/rdp/cudnn-download
CUDA 9.0 버전의 제일 상단의 cuDNN v7.1.4 Library for Linux
을 선택하여 다운로드합니다. (tgz 파일)
다운로드 받은 파일 경로로 이동하여 압축을 해제합니다.
1 | cd Downloads |
압축을 해제하면 cuda
폴더가 생성되는데, 내부 파일들을 다음과 같이 복사합니다.
1 | sudo cp cuda/include/cudnn.h /usr/local/cuda/include |
모든 과정이 끝나면 메인으로 이동하여 .bashrc 파일에 CUDA의 PATH를 등록합니다.
1 | sudo vi ~/.bashrc |
내용을 저장하고 닫습니다.
bashrc의 변경사항을 바로 반영하도록 다음 명령을 실행합니다.
1 | source ~/.bashrc |
5. Tensorflow 환경 구축
5.1 Python 설치
아래와 같이 파이썬 3, 2 버전 별로 Anaconda
배포판 설치 스크립트 다운로드 받습니다.
Python3.6.x 버전 (x64)
1 | wget https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh |
1 | chmod u+x Anaconda3-5.1.0-Linux-x86_64.sh |
1 | bash Anaconda3-5.1.0-Linux-x86_64.sh |
Python 2.7.x (x64)
1 | wget https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86_64.sh |
1 | chmod u+x Anaconda2-5.1.0-Linux-x86_64.sh |
1 | bash Anaconda2-5.1.0-Linux-x86_64.sh |
본 가이드에서는 /opt
에 anaconda3
설치했다는 가정하에 진행하겠습니다.
vi 편집기로 .bashrc 파일에 아래와 같이 내용을 입력하고 저장합니다.
1 | vi ~/.bashrc |
5.3 Jupyter notebook
주피터 노트북을 실행하기 앞서 홈디렉토리로 이동하여 파이썬을 실행합니다.
1 | python |