2022년 6월 19일 일요일

[VS Code on Ubuntu] To install Mono-dev

 sudo apt install gnupg ca-certificates

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68980A0EA10B4DE8

echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list

sudo apt update

sudo apt install mono-devel

UBuntu 18.04 LTS / NVIDIA 470 / CUDA 11.4 / cuDNN8.2.4

# 한 사이트 참고해서 환경 설정하기 힘들어서 내 환경에 맞게 짜깁기한 내용임.

# 참고 사이트는 아래에 있음.

# 설치

# 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