본문 바로가기
Etc

[Ubuntu] Pytorch 설치 : 버전 호환 CUDA & python

by xoft 2024. 4. 27.

Pytorch를 pip로 설치하면 간단 할 것 같은데, 막상 설치하려고 하면 Pytorch버전에 따라 CUDA 버전, python 버전을 고려해야하고, CUDA 버전은 그래픽카드를 고려해야합니다. 이 글에서는 Pytorch 버전에 따른 개발 환경셋팅 방법에 대해 다룹니다.

 

1. Pytorch 버전 체크

필요한 pytorch버전을 체크합니다. 오픈소스를 빌드해보고자 한다면, root 폴더의 requirements.txt 이나 environment.yml으로 확인 할 수 있습니다.

필요한 버전이 없다면 link에 언급된 최신버전을 타겟으로 아래 글을 읽어주시길 바랍니다.

 

 

 

2. CUDA 버전 호환 체크

link 에서 ctrl+f 눌러 설치하고 자하는 pytorch버전을 찾습니다. 여기선 예시로 1.12.1버전을 찾아보엤습니다. 언급된 CUDA버전 중에 하나를 설치해야 합니다. 

# ROCM 5.1.1 (Linux only)
pip install torch==1.12.1+rocm5.1.1 torchvision==0.13.1+rocm5.1.1 torchaudio==0.12.1 --extra-index-url  https://download.pytorch.org/whl/rocm5.1.1
# CUDA 11.6
pip install torch==1.12.1+cu116 torchvision==0.13.1+cu116 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu116
# CUDA 11.3
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113
# CUDA 10.2
pip install torch==1.12.1+cu102 torchvision==0.13.1+cu102 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu102
# CPU only
pip install torch==1.12.1+cpu torchvision==0.13.1+cpu torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cpu

 

최신 GPU라면 가장 높은 CUDA버전을 설치하면 되지만, 연식이 되는 GPU라면 Graphic카드부터 체크해야 합니다. 아래 명령어로 GPU 모델명을 확인합니다.

$ ubuntu-drivers devices
...
vendor   : NVIDIA Corporation
model    : GA106 [GeForce RTX 3060 Lite Hash Rate]
...

제 GPU는 RTX 3060입니다. wikipedia-GPUs-support 에서 RTX 3060을 찾으면 

capability버전이 8.6이고 architecture가 Ampere임을 볼 수 있습니다.

하나의 예시로, CUDA 11.0은 capability 버전이 3.5~8.0만 호환한다는 의미를 가집니다.

때문에 제가 갖고 있는 3060GPU는 capability가 8.6이기 때문에, CUDA 11.1~12.4 를 호환하게 됩니다. (위 표의 최신버전은 wikipedia-GPUs-support 확인 바랍니다.) 

 

 

3. Graphic Driver 및 CUDA 설치

아래 명령어로 그래픽 드라이버 설치를 확인합니다.

$ nvidia-smi

저 같은 경우 여러 오픈소스를 실행하는 경우가 많아서, 여러 CUDA버전이 필요하므로 Multi CUDA 환경을 주로 셋팅합니다. 해당 방법에 대해서는 다른 글(link)로 다루었습니다. 해당 글을 요약하자면,

1.  link 에서 본인의 GPU에서 설치 할 수 있는 가장 높은 CUDA버전과 필요한 CUDA 버전을 다운로드 합니다.

2. 가장 높은 버전의 CUDA Toolkit과 Driver를 설치하고, 필요한 CUDA버전의 CUDA Toolkit만 설치합니다.

 

 

4. Python 버전 호환 체크

release-compatibility-matrix 에 언급되어 있습니다. 모든 버전에 대해선 언급되어 있지 않네요. Pytorch 2.0 기준으로 python 호환 버전이 바뀐다고 보면 됩니다.

Pytorch 2.0이상의 경우 3.8~3.11, 그 이하의 경우 3.7~3.10입니다.

 

 

5. Python 설치 & Pytorch 설치

총 3가지 방법을 소개합니다. 5.1 또는 5.2 또는 5.3 셋중에 한가지 방법으로 설치하면 됩니다.

 

5-1. Conda

회사에서는 라이센스 이슈로 사용못하는 방법입니다. '2. CUDA버전 호환 체크'에 언급한 link에서 맞는 버전을 찾아 conda 명령어로 설치를 진행합니다. python버전이 자동으로 맞춰져 설치됩니다. 

 

5-2. Pip

5-2-1. Python

Python도 여러 버전을 설치하는 것을 권장합니다. 2가지 방법이 있습니다.

방법1) apt-get install : 설치된 python프로그램은 /usr/bin/에 위치해있습니다

$ sudo apt-get install python3.8

방법2) 수동 설치 : 설치된 python프로그램은  /usr/local/bin에 위치해있습니다.

python.org/downloads 에서 python버전을 선택 후, Ubuntu의 경우 Gzipped source tarball로 다운 받습니다.

$ sudo tar xzf Python-x.x.x.tgz
$ cd Python-x.x.x
$ sudo ./configure --enable-optimizations   # 에러가 발생한다면 gcc버전 체크
$ sudo make install

2가지 방법 중 하나로 설치가 완료됬다면, 가상환경을 만들어서 쓰는 것을 권장합니다.

$ cd myproject1
$ /usr/local/bin/python3.8 -m pip install virtualenv --user  # virtualenv 설치
$ /usr/local/bin/python3.8 -m virtualenv .env_py38		# 가상환경 생성
$ ls -al 				# 가상환경 폴더 생성 확인
$ source .env_py38/bin/activate  # 가상환경 실행
(.env_py38)$ python --version    # 가상환경 내에서 python버전 확인
(.env_py38)$ deactivate          # 가상환경 종료
$

5-2-2. Pytorch

'2. CUDA버전 호환 체크' 에 언급한 link 에서 맞는 pytorch버전을 찾아 설치를 진행합니다. pip 명령어로 설치합니다.

 

5-3. Docker

Python/Pytorch를 설치하는 다른 가상환경 셋팅 방법입니다. 

docs.docker의 가이드에 따라 설치합니다.

hub.docker에서 맞는 torch, cuda 버전을 찾아서 설치합니다.

 

 

댓글