# 한 사이트 참고해서 환경 설정하기 힘들어서 내 환경에 맞게 짜깁기한 내용임.
# 참고 사이트는 아래에 있음.
# 설치
# NVIDIA 460, CUDA 11.2, cuDNN 8.1
https://webnautes.tistory.com/1428
https://velog.io/@cychoi74/%EC%9A%B0%EB%B6%84%ED%88%AC-18.04-NVIDIA-%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B2%84-%EC%84%A4%EC%B9%98
# NVIDIA 470, CUDA 11.4, cuDNN 8.2
https://lapina.tistory.com/m/131
# 삭제
https://settembre.tistory.com/447
# Blacklist 추가
# Ubuntu 그래픽 드라이버로 설치되는 Nouveau Driver와 충돌 할 수 있어서 로딩되지 않게 해야 함.
$ sudo nano /etc/modprobe.d/blacklist-nouveau.conf
(ctrl+o 저장, ctrl+'x 종료)
blacklist nouveau
options nouveau modeset=0
# 혹은 터미널 환경이면
$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf
# i키 누르고 아래 내용 입력
blacklist nouveau
options nouveau modeset=0
# esc키 ":wq" 입력 후 엔터
# 저장 후 재부팅
$ sudo update-initramfs -u
$ sudo reboot
# gdm 서비스 종료
$ service gdm status
$ service gdm stop
# DisplayManager 비활성화 및 활성화.
# 첫번째 명령어 치면 커맨드 화면으로 가버림.
# 당황하지 말고 두번째 명령어 치면 다시 돌아옴.
$ systemctl isolate multi-user.target
$ systemctl start graphical.target
# 그래픽카드 정보 확인
$ ubuntu-drivers devices
# 470에 cuda 11.4 설치해도 됨.
# APT로 설치하는 방법
repository 추가
$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt update
# 드라이버 설치
$ sudo apt-get install nvidia-driver-470
# cuda 11.4가 같이 설치되지만 /usr/local/ 에 보이지 않음. 수동으로 다시 설치.
# CUDA Toolkit 11.4 Update 4
$ wget https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda_11.4.4_470.82.01_linux.run
$ sudo sh cuda_11.4.4_470.82.01_linux.run
# 환경 추가
sudo sh -c "echo 'export PATH=$PATH:/usr/local/cuda-11.4/bin' >> ~/.bashrc"
sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.4/lib64' >> ~/.bashrc"
sudo sh -c "echo 'export CUDADIR=/usr/local/cuda-11.4' >> ~/.bashrc"
source ~/.bashrc
# 설치 확인
$ nvcc -V
# cuDNN 8.2.4
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/8.2.4/11.4_20210831/cudnn-11.4-linux-x64-v8.2.4.15.tgz
$ tar xvzf cudnn-11.4-linux-x64-v8.2.4.15.tgz
$ cd cudnn-11.4-linux-x64-v8.2.4.15
sudo cp cuda/include/cudnn* /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda-11.4/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
# 링크 다시 걸어줌.
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_train.so.8;
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8;
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8;
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8;
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_ops_train.so.8;
sudo ln -sf /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8;
sudo ln -sf /usr/local/cuda-11.2/targets/x86_64-linux/lib/libcudnn.so.8.2.4 /usr/local/cuda-11.4/targets/x86_64-linux/lib/libcudnn.so.8
$ sudo ldconfig
여기서 Error메시지 발생한다면 아래 링크 통해 해결
https://lapina.tistory.com/130
$ ldconfig -N -v $(sed 's/:/ /' <<< $LD_LIBRARY_PATH) 2>/dev/null | grep libcudnn
# 아래와 같이 나와야 함.
libcudnn_cnn_infer.so.8 -> libcudnn_cnn_infer.so.8.2.4
libcudnn_ops_train.so.8 -> libcudnn_ops_train.so.8.2.4
libcudnn_adv_train.so.8 -> libcudnn_adv_train.so.8.2.4
libcudnn.so.8 -> libcudnn.so.8.2.4
libcudnn_adv_infer.so.8 -> libcudnn_adv_infer.so.8.2.4
libcudnn_cnn_train.so.8 -> libcudnn_cnn_train.so.8.2.4
libcudnn_ops_infer.so.8 -> libcudnn_ops_infer.so.8.2.4
# anaconda3(python 3.9) 초기화 안될때
$ source ./anaconda3/bin/activate
# .bashrc에 초기화 스크립트 추가됨.
$ conda init
# 아나콘다 가상환경 실행안될 때
# 쉘에서 환경 생성할때 아래 오류 나오면 해당 경로 권한 변경
NoWritableEnvsDirError: No writeable envs directories configured.
- /home/username/.conda/envs
- /home/username/anaconda3/envs
$ chown -R username:username /home/username/.conda
$ chown -R username:username /home/username/anaconda3
# Nvidia driver 완전 삭제
$ sudo apt-get purge nvidia*
$ sudo apt-get autoremove
$ sudo apt-get autoclean
# CUDA 완전 삭제
$ sudo rm -rf /usr/local/cuda*
$ sudo apt-get --purge remove 'cuda*'
$ sudo apt-get autoremove --purge 'cuda*'
# 확인
$ sudo dpkg -l | grep nvidia
이때 아무것도 안나오면 다 삭제된것이고 아니라면
$ sudo apt-get remove --purge 지울이름.
마찬가지로 다음 명령어를 입력해본다.
$ sudo dpkg -l | grep cuda
이때 아무것도 안나오면 다 삭제된것이고 아니라면
$ sudo apt-get remove --purge 지울이름
# 아나콘다
https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh