본문 바로가기

Software/Ubuntu and Mint

Ubuntu20.04(Mint 20.1)에서 CUDA 및 Tensorflow 설정

제가 가지고 있는 Sub 노트북은 델의 GTX1650이 탑재된 모델입니다. 제 16인치 i9급 맥북과 가격은 비슷(^^)하지요. 저의 맥북으로 mnist 데이터셋을 돌리는 시간의 7분 1 정도 빠르게 동작합니다.^^. 이번에는 제가 새로 Mint20.1을 설치하면서 델 노트북에 설치하면서 설정한 CUDA와 CUDNN설정을 정리하려고 합니다. 아시겠지만, 이 글은 추후에 제가 다시 보려는 의도가 더 강합니다.^^

먼저 설치 OS는 Mint20.1입니다. Mint20.1 UlyssaUbuntu 20.04 Focal에 대응합니다. 거의 똑 같아서 몇 가지만 유의하면 우분투와 동일하게 사용할 수 있습니다. 그래서 Mint20.1 Ulyssa가 잘 설치된 상황에서 이 글을 시작합니다.

어떻게든 먼저 잘 지우자 CUDA

먼저 혹시 기존의 cuda를 설치했다면 uninstaller가 설치되어 있을 겁니다. 이 아이는 /usr/local/cuda/bin/cuda-uninstaller에 위치해 있습니다. 이걸 실행해도 됩니다.

sudo apt-get --purge -y remove 'cuda*'
sudo apt-get --purge -y remove 'nvidia*'
sudo apt-get autoremove --purge cuda

혹은 위 코드처럼 이쁘게 관련된 아이들을 모두 삭제해도 됩니다.^^. 그리고 /usr/local/에 가서 혹시 cuda로 시작하는 폴더가 보인다면 다 지워버리면 됩니다.

nvidia-driver 설치

그리고 나면 nvidia driver를 설치합니다. 보통 

sudo apt install nvidia-driver-***

위 명령의 형식이며 *** 자리에 버전이 들어가게 됩니다. 버전을 알아내는 것은 자신의 그래픽카드로 검색해보는 방법도 있고, ubuntu-drivers devices 명령으로 recommand 되는 번호를 사용하면 됩니다. 저는 460버전을 설치했습니다. 그리고 저는 reboot을 했습니다.

CUDA toolkit 설치

이제 CUDA toolkit을 설치해야하는데, 제가 설치하려고 한 CUDA 10.1은 우분투 20.04에 대응하는 버전이 없습니다. 그래서 다들 많이 사용하는 방법대로 저역시 18.04 버전을 설치하려고 했습니다.

sudo apt update

sudo apt install build-essential
sudo apt install gcc-8 g++-8 gcc-9 g++-9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8 --slave /usr/bin/g++ g++ /usr/bin/g++-8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 --slave /usr/bin/g++ g++ /usr/bin/g++-9

위 명령을 한 줄씩 실행합니다. 그리고 나서 

sudo update-alternatives --config gcc

명령을  실행해서 gcc 8버전을 선택합니다. 그리고 CUDA toolkit 다운로드 페이지에서 CUDA 10.1 update2를 선택해서 다운로드 합니다. Linux -> x86_64 -> Ubuntu -> 18.04 -> Runfile을 순서대로 선택합니다. 그러면 다운받아야할 파일을 받는 명령과 그 파일을 실행하는 명령이 나타납니다. 하라는대로 진행하면 설치가 완료됩니다. 설치중에 nvidia-driver를 선택하는 곳이 있는데 스페이스바를 눌러 해제합니다.

cuDNN 다운로드 및 설치

이제 cuDNN 다운로드 페이지로 가서 로그인을 하고. (혹은 가입을 하고) cuDNN 7.6.7 for CUDA 10.1을 선택하고 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*

그리고  위 명령을 한 줄씩 수행해서 cuDNN 파일을 cuda가 설치된 곳에 복사하고 권한까지 부여합니다.

cd /usr/local/cuda-10.1/targets/x86_64-linux/lib/
sudo rm libcudnn.so.7 libcudnn.so
sudo ln -s libcudnn.so.7.6.5 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
sudo ldconfig

이제 위 명령을 수행해서 libcudnn.so.7과 libcudnn.so 파일을 다시 설정하고 ldconfig를 실행합니다. 이제 

nvcc --version
ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn

를 각각 실행해서 내가 설치한 버전이 나타나면 됩니다.

반응형