CPU : I7-11700F (amd64)
GPU : GTX2080 SUPER
OS : Ubuntu22.04
본 문서에서는 Ubuntu22.04에서 딥러닝 공부를 위한 환경 구축을 하겠습니다.
sudo ubuntu-drivers autoinstall
# if gcc is not installed
sudo apt update
sudo apt install build-essential
uname -r
sudo apt-get install linux-headers-$(uname -r)
# 설치 가능한 드라이버 버전 리스트를 확인합니다.
ubuntu-drivers devices
## 23년 8월 기준 권장 버전은 535
sudo apt install nvidia-driver-535
sudo reboot
gyu@gyu:~$ nvidia-smi
Wed Aug 23 00:28:18 2023
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.129.03 Driver Version: 535.129.03 CUDA Version: 12.1 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3050 ... Off | 00000000:01:00.0 Off | N/A |
| N/A 48C P8 8W / 35W | 617MiB / 4096MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 1345 G /usr/lib/xorg/Xorg 292MiB |
| 0 N/A N/A 3508 C+G ...61033818,9382365274700985078,262144 308MiB |
+---------------------------------------------------------------------------------------+
본인이 사용하려는 환경에 맞게 CUDA를 설치합니다.
본 페이지에서는 11.8버전을 설치하겠습니다.
https://developer.nvidia.com/cuda-11-8-0-download-archive?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=22.04&target_type=runfile_local
버전을 선택하면 아래 이미지와 같이 설치 방법이 나옵니다.
cuDNN의 경우 Nvidia 계정이 필요합니다.
https://developer.nvidia.com/rdp/cudnn-archive
사용하는 환경에 맞게 Local Installer를 다운로드합니다.
본 페이지에서는 Local Installer for Ubuntu22.04 x86_64 (Deb)
를 설치합니다.
tar -xvf cudnn-linux-x86_64-8.8.1.3_cuda11-archive.tar.xz
## after unzip
sudo cp cudnn-linux-x86_64-8.8.1.3_cuda11-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp cudnn-linux-x86_64-8.8.1.3_cuda11-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
# 설치 확인
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
cuDNN Symbolic link 오류 발생 시 아래 링크를 참고했습니다.
https://lapina.tistory.com/130
https://repo.anaconda.com/archive/
본인의 환경에 맞게 다운로드합니다.
본 페이지에서는 Anaconda3-2023.09-0-Linux-x86_64.sh
를 다운로드하겠습니다.
클릭으로 다운로드 혹은 curl
명령어를 통해 다운로드
curl --output conda_install.sh https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh
다운로드가 완료되었다면 설치 스크립트를 실행합니다.
# Match the "SHA-256" Checksum
# sha256sum conda_install.sh (Optional)
bash conda_install.sh
설치 진행 중 여러차례 yes를 입력하면 설치가 완료됩니다.
Enter
yes
설치 경로 입력 혹은 Enter
no # yes를 입력할 경우 shell에서 conda 환경을 기본으로 사용
💡 설치 중 Anaconda3 경로를 변경할 수 있습니다.
기본 경로는 /home/{USER}/anaconda3로 홈 디렉토리에 생성됩니다.
환경 변수 설정
sudo vi ~/.bashrc
# 아래 줄 추가
export PATH=~/anaconda3/bin:~/anaconda3/condabin:$PATH
설치 확인
conda -V
https://pytorch.org/get-started/locally/
23년 8월 기준 latest 버전은 2.0.1입니다.
본인의 환경에 맞게 선택한 후 생성되는 명령어를 터미널창에 입력합니다.
설치 후 GPU 사용을 확인합니다.
$ python
>> import torch
>> torch.cuda.is_available()
True
만약 False가 출력된다면, Nvidia driver, CUDA, cuDNN을 제대로 설치했는지 확인합니다.
CUDA와 cuDNN을 설치했는데,
nvcc -V
명령어를 찾을 수 없다는 에러가 발생한다면, CUDA 환경변수를 제대로 지정했는지 확인합니다.
우분투를 사용해 공부를 하는 중, source ~/.bashrc
혹은 conda activate [환경이름]
과 같이 자주 사용해야하는 명령어가 많이 있었습니다.
또는, 아래는 제가 MLflow 공부를 하며 Tracking server를 구동하기 위한 명령어입니다.
mlflow server --backend-store-uri sqlite:///mlflow.db \
--default-artifact-root $(pwd)/artifacts \
--host 0.0.0.0 --port 8888
위와 같이 자주 변경하지 않지만, 자주 사용되는 명령어의 경우 일일히 치기 번거로웠습니다.
따라서 이렇게 자주 사용되는 명령어들을 alias
를 통해 명령어를 간소화하겠습니다.
vi ~/.bashrc
...생략
alias sb='source ~/.bashrc'
alias eb='vi ~/.bashrc'
alias CA='conda activate'
alias CD='conda deactivate'
...생략
# 적용하기
sourcve ~/.bashrc
⚠️ 기본 명령어와 겹치지 않게 주의합니다!!
위와 같이 설정하면, CA
명령어를 통해 conda 가상환경을 켤 수 있고, CA yolov7
과 같이 사용해 이미 만들어둔 가상환경을 편하게 켤 수 있습니다.
하지만, 사용하다보면 ~/.bashrc
파일이 지저분해질 수 있습니다.
이를 위해 ~/.bashrc_aliases
파일을 생성해 이 파일에 alias
명령어를 작성한 후, ~/.bashrc
에서 불러오도록 하겠습니다.
vi ~/.bashrc_aliases
alias sb='source ~/.bashrc'
alias eb='vi ~/.bashrc'
# Conda 명령어
alias CA='conda activate'
alias CD='conda deactivate'
# MLflow 명령어
alias mls='mlflow server --backend-store-uri sqlite:///mlflow.db \
--default-artifact-root $(pwd)/artifacts \
--host 0.0.0.0 --port 8888'
# Git 명령어
alias gs='git status'
...등등
이제, ~/.bashrc
파일에서 ~/.bashrc_aliases
를 불러오도록 하겠습니다.
eb
...생략
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
...생략
sb
이렇게 하면 ~/.bashrc
를 깔끔하게 유지하며 ~/.bashrc_aliases
에 alias
할 명령어들을 정리해주면 됩니다.