본문 바로가기

잡다한 것

Ubuntu 18.04 그래픽 드라이버 440, cuda 10.2 오류 ,그래픽 드라이버 410,cuda 10.0 클린 설치하기

Cuda 설치 및 ubuntu에 대한 default 셋팅

2020/04/17 - [잡다한 것] - Ubuntu 18.04 그래픽 드라이버, Cuda 10.0 설치

 

Ubuntu 18.04 그래픽 드라이버, Cuda 10.0 설치

Python 패키지 설치 sudo apt-get install openjdk-8-jdk git python-dev python3-dev python-numpy python3-numpy python-six python3-six build-essential python-pip python3-pip python-virtualenv swig pytho..

keyog.tistory.com

--2020.02 기준 --

만약 그래픽 드라이버를 설치할 때 ppa로 설치했다면, 그래픽 드라이버가 410버젼이 아닌 440 버젼으로 설치 됬을 것이다.

440 버젼으로 설치 되었을 경우 cuda설치시 10.0이 아니라 10.2를 설치 하였을텐데 현재 tensorflow나 Yolo등 에서는 cuda 10.2을 지원하지 않아 해당 오류가 발생한다.

I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Could not dlopen library 'libcudart.so.10.0';
 dlerror: libcudart.so.10.0: cannot open shared object file: No such file

 

만약 10.2가 아니라 10.0을 깔아 주었더라도 ppa로 드라이버 설치를 진행한 경우에는 Cuda와 driver의 버젼 미스 오류가 뜬다.

cudaGetDeviceCount FAILED CUDA Driver and Runtime version may be mismatched.

 

역시 이를 해결하기 위해 모든 드라이버 및 Cuda를 삭제하고 410드라이버와 cuda 10.0을 재설치 하더라도 Graphic driver가 최신 버젼이 아니라는 오류 내용이 나온다.

이 경우, 딥러닝 라이브러리는 cuda10.0을 요구하고, 우분투에서는 최신 드라이버를 요구하기 때문에 삼각형으로 문제가 발생한다. 필자가 알아낸 야매(?)를 통해 이 문제를 해결해 보자.

Cuda 10.0 최신 드라이버에 클린 설치하기

먼저 클린 설치를 위해서 설치되어있는 드라이버와 Cuda를 모두 삭제해준다.

sudo apt-get purge nvidia* && sudo apt-get autoremove && sudo apt-get autoclean && sudo rm -rf /usr/local/cuda*

 

nvidia-smi나 nvcc -V 명령어를 통해 삭제가 되었는지 확인한다.

만약 deb file로 cuda를 설치할 경우 드라이버가 자동적으로 440버젼이 깔리는 경우가 있기 때문에 한번에 설치를 진행할 수 있는 runfile을 통해 cuda와 드라이버를 설치해준다.

https://developer.nvidia.com/cuda-10.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal

 

CUDA Toolkit 10.0 Archive

Select Target Platform Click on the green buttons that describe your target platform. Only supported platforms will be shown. Operating System Architecture Distribution Version Installer Type Do you want to cross-compile? Yes No Select Host Platform Click

developer.nvidia.com

Cuda 10.0 runfile 다운로드 (외국 홈페이지라 사람마다 다운로드 속도 차이가 있다. 매우느림.. )

runfile다운로드가 완료 되었으면, 실행시켜서 드라이버와 Cuda를 설치하여 주자.

cd Downloads/

sudo sh cuda_10.0.130_410.48_linux.run

 

----------20.05.21 업데이트------

**만약 설치가 안되고 계속 설치가 실패 한다면 재부팅후 실행
그 이후에도 계속 실패하는 경우 sudo apt-get install nvidia-driver-410 커맨드를 통해 먼저 설치를 한 후
다시  run 파일로 설치하면 설치가 잘 된다.

--------------------------------------------

runfile을 실행하면 약관동의 및 여러가지 문구가 나오는데, 그냥 다 yes로 해주고 넘어가도록 하자.

설치가 완료되면 Cudnn도 설치

https://developer.nvidia.com/rdp/form/cudnn-download-survey

cuDNN Library for Linux 를 다운받아 압축을 푼다

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

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64

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

 

그 후에 .bashrc를 열고

gedit ~/.bashrc

 

.bashrc 맨 밑에 해당 줄을 추가해서 환경변수 설정

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}}
export PATH=/usr/local/cuda/bin:/$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

 

설치가 끝나면 sudo reboot명령어나 Gui를 통해 재부팅

sudo reboot

 

재부팅 후에 nvidia-smi와 nvcc -V로 확인해보면, nvidia-smi 명령어의 경우 최신버젼 관련 오류가 나오고 nvcc -V의 경우 cuda 10.0으로 나온다면 설치가 정상적으로 된 것이다.

하지만 이 상태로는 그래픽드라이버를 사용할 수 없기 때문에 410이 설치된 곳에 ppa를 통해 최신 드라이버를 설치해주면 440드라이버로 인식하면서 설치된 410드라이버로 인해 cuda 10.0을 사용할 수 있다.

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

sudo ubuntu-drivers autoinstall

sudo reboot

 

설치 후 재부팅을 하고나면 nvidia-smi를 실행하면 그래픽드라이버 440과 cuda 10.2가 설치되어 있다고 출력이 된다. 하지만 nvcc -V를 통해 확인해보면 Cuda가 10.0 버젼인 것을 확인할 수 있다.

nvidia-smi에는 cuda가 10.2로 찍히지만 실제로는 10.0을 사용중이다.

이제 tensorflow같은 딥러닝 라이브러리를 사용하면 잘되는 것을 확인할수 있다.