Ubuntu 22.04 딥러닝 환경 구축

안녕·2023년 11월 29일
0

PC 사양

CPU : I7-11700F (amd64)
GPU : GTX2080 SUPER
OS : Ubuntu22.04


본 문서에서는 Ubuntu22.04에서 딥러닝 공부를 위한 환경 구축을 하겠습니다.

1. Nvidia Driver 설치

권장 드라이버 자동 설치

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 |
+---------------------------------------------------------------------------------------+

2. CUDA 11.8 설치

본인이 사용하려는 환경에 맞게 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

버전을 선택하면 아래 이미지와 같이 설치 방법이 나옵니다.

3. cuDNN 8.9.3 설치

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

4. Conda 설치

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

5. PyTorch 설치

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 환경변수를 제대로 지정했는지 확인합니다.


+ alias 설정

우분투를 사용해 공부를 하는 중, 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_aliasesalias할 명령어들을 정리해주면 됩니다.

profile
화이팅

0개의 댓글