본문 바로가기
IT/머신러닝

Ubuntu 18.04 LTS에서 Tensorflow Gpu 설치 ( CUDA10.0, cuDNN v7.3.1 )

by 빨강자몽 2018. 10. 8.

많은 삽질의 결과들 설치 시 주의사항


Tensorflow의 경우 지원하는 버전이 정해져있다. 따라서 다음 버전을 사용할 것을 추천한다. 특히나 콘다의 기본 파이썬이 3.7로 되어있는데 파이썬 3.6 이상의 버전은 현재 까지는 지원을 하지 않는다.


- ubuntu = 16.04 (추천 사항)

- CUDA Toolkit = 9.0

- cuDNN = 7.2

- python = 3.6


밑에 설치 시  cuda_9.0 와 cudnn_7.2로 버전 정보만 바꿔서 설치하면 된다.


CUDA toolkit 10.0 설치


- CUDA란? 

 그래픽 장치(GPU)에서 수행하는 (병렬 처리) 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용하여 작성할 수 있도록 하는 기술이다.



다운로드가 끝난 뒤


cuda 설치를 하기전에 우분투 기본 드라이버 nouveau 드라이버를 제거해줘야 한다.


#nouveau 비활성화

sudo apt-get remove nvidia* && sudo apt autoremove

sudo apt-get install dkms build-essential linux-headers-generic


# /etc/modprobe.d/blacklist.conf 파일 열기

sudo vi /etc/modprobe.d/blacklist.conf


# 맨밑에 추가하여준다.

blacklist nouveau

blacklist lbm-nouveau

options nouveau modeset=0

alias nouveau off

alias lbm-nouveau off


# 확인 및 재빌드

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf

sudo update-initramfs -u

sudo reboot


cuda 설치를 시작한다.


# 다운받은 폴더로 이동하여 압축 파일을 해제 한다.

tar -zxvf cuda_10.0.130_410.48_linux.run


# 사용중인 gui 멈춤

sudo service lightdm stop


# 계정 로그인

press alt+F1 ( 로그인 아이디 / 비밀번호 로그인)


# 파일 위치로 이동하고 설치를 시작한다.

sudo sh cuda_10.0.130_410.48_linux.run (해당 쿠다 설치 파일)


# gui 다시 동작

sudo service lightdm start


설치 할때 쭉 약관을 읽은 뒤에 "드라이버 재설치 할래?"라는 문장만 "no"를 해준다.

(“Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 410.48?”)

(시스템이 불안정해 진다고 한다)



[에러 슈팅 1] 만약 설치 후 다음 문장이 나오면서 안되는 경우


(It appears that an X server is running. Please exit X before installation. 

If you're sure that X is not running, but are getting this error, please delete any X lock files in /tmp.)


# 사용중인 gui 멈춤

sudo service lightdm stop


# 계정 로그인

press alt+F1 ( 로그인 아이디 / 비밀번호 로그인)


# cuda 설치

sudo sh cuda_8.0.61_375.26_linux.run (해당 쿠다 설치 파일)


# gui 다시 동작

sudo service lightdm start


[에러 슈팅 2] lightdm에서 잘못 하여 무한 부팅이 되는 경우 


# nvidvia 드라이브 삭제

sudo apt purge nvidia*


# 최신 ndivia 드라이브 설치

sudo ubuntu-drivers autoinstall


# 재부팅

sudo reboot



2. cuDNN 설치

다음 링크에 들어가서 cuDNN를 설치해야 한다. 

(https://developer.nvidia.com/cudnn)


cuDNN 다운로드 선택을 하고 로그인을 한 뒤에 설치를 진행을 한다.



위에서 CUDA 10.0을 설치 하였으니 그에 맞는 cuDNN v7.3.1 for CUDA 10.0을 선택하고


cuDNN v7.3.1 Library for Linux를 실치한다.



3. cuDNN 적용 및 libcupti 설치 


우선 cuDNN unpack 및 적용해야한다.


# 다운받은 cudnn 파일 압축 해제

tar -zxvf cudnn-10.0-linux-x64-v7.3.1.20.tgz


# 압축 해제 파일을 CUDA에 복사

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

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


# 이동시킨 파일들 접근 권한 부여

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


libcupti 설치

( NVIDIA에서 필요한 파일이라고 하니 다운 )


sudo apt-get install libcupti-dev


4. 설치 후 path variable 설정


# 설정

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}}

source ~/.bashrc


# 설치 확인

nvcc --version


설치 후 다음과 같이 나오면 된다.



Tensroflow Gpu 설치


이미 파이썬이 또는 아나콘다가 설치 된 경우에


pip install --upgrade tensorflow-gpu



설치가 되어 있지 않은경우 (파이썬 보다는) 아나콘다를 설치한다.


아나콘다 설치 링크