본문 바로가기
etc/환경설정

우분투 20.04에서 Pytorch 설치

by 하람 Haram 2023. 5. 17.
728x90

< NVIDIA 그래픽 드라이버 설치 >

 

그래픽 카드로 드라이버를 검색하여서 다운로드 받을 수 있다

내 그래픽 카드가 뭐였는지 가물가물 하면

sudo lspci -v | less

이런 걸로 찾아 볼 수 있긴한데 

(요 VGA compatible controller 뒤에 있는 [ ] 안에 있는거)

생각보다 좋아서 놀람...

https://www.nvidia.com/Download/index.aspx?lang=kr 

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

요 위에 사이트로 가서 제품 누르고 찾으면 된다

 

 

귀찮으니깐 다음 명령어

sudo ubuntu-drivers devices

 

뭔지 모를 땐 추천 받는게 최고 이긴 함 nvidia-driver-530

이랬다가 지금 듀얼 모니터가 갑자기 안됨 ㅜㅜ

 

** 주의 **

본인도 모르게 드라이버가 설치되었을 수도 있으니 충돌이 나지 않게

아래의 명령어를 실행해서 확인한 다음

nvidia-smi

아래 명령어를 진행하자

 

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt-get install nvidia-driver-530

자 뭔가 잘못되었답니다 ^^

우분투 재설치 (저는 그냥 밀어 줬습니다)

 

 

위에 과정을 반복하고

 

그리곤 재부팅 해주자

sudo reboot

그러고 나서 잘 설치되었는지 확인

nvidia-smi

이래 나오면 성공

 

만약 아래와 같은 오류가 나온다면 아래 링크를 참고하자

nvidia-smi has failed because it couldn't communicate with the nvidia driver

https://sdpcs.tistory.com/15

 

nvidia-smi has failed because it couldn't communicate with the nvidia driver 해결, nvidia driver 설치

그래픽 드라이버랑 뭔가 호환이 되지 않을 때 생기는 problem 인 "nvidia- smi has failed because it couldn't communicate with the nvidia driver" 에 대한 solution을 드디어 찾아냄... 이 문제를 해결하는데 이렇게 많은

sdpcs.tistory.com

 

 

 

<아나콘다 설치>

 

다음은 아나콘다를 설치해줘야 한다.

 

아래의 사이트에 들어가서

https://www.anaconda.com/download

 

Free Download | Anaconda

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

펭귄(리눅스) 버전 다운로드를 눌러주자

 

다운로드 받았으면 실행을 시켜주자

cd ~/Downloads
sha256sum Anaconda3-2023.03-1-Linux-x86_64.sh
bash Anaconda3-2023.03-1-Linux-x86_64.sh

enter 누르고 있다가 yes누르고 enter 누르고 반복

고맙다고 하네요

source ~/.bashrc

적용시켜주고

설치를 확인

conda --version

 

가상환경 실행

 

위에 우분투가 충돌나서 지웠듯이

그냥 다이렉트로 파일들을 설치하면 별로 좋지 않다

그래서 가상환경을 만들어서 여기에 cuda랑 필요한 라이브러리들을 만드는 것이 좋다

#만들기
conda create -n [가상환경이름] python=[파이썬 버전]
#실행
conda activate [가상환경이름]

#종료시
conda deactivate

torch라는 이름으로 만들어 줬고 가상환경 저장 위치도 알려준다

activate를 했을 때 앞에 (base)가 (torch)로 바뀌면 성공

 

 

가상환경 자동실행

 

가상환경을 자동으로 실행시키고 싶으면

가상환경으로 들어가서 다음 명령어를 실행하면 된다

 

일단 지금 상황을 보려면 아래의 명령어

# conda 설정 전체 보기
conda config --show

# conda 설정 auto_activate_base 항목만 보기
conda config --show | grep auto_activate_base

base 자동 실행이 켜져있다 이게 마음에 안들면

conda config --set auto_activate_base false

이제 새 터미널을 열어보면

base 환경이 꺼진다

conda activate torch
conda config --set auto_activate_base true

 

 

 

< CUDA 설치 >

음... 뇌 빼고 하다가 위로와서 다시 적는다

 

상황

Ubuntu : 20.04
GPU : RTX 3080
CUDA : 12.1

이렇게 해서 이제 Pytorch 받으려고 했는데 없네???

12.1 차별 멈춰 ㅠㅠㅠㅠ

그래서 두가지 방법 을 제시하고자 한다

(삽질 구경하고 싶으면 "CUDA 관련 삽질" 목차를 보면 된다)

 

1. CUDA를 처음 받는 경우

cd /usr/local

를 들어갔을 떄 CUDA관련 폴더가 없는 경우 아직 cuda를 처음 받는 것이다

(받기 전에 이걸 읽은 당신께 박수를)

어쩌피 목표가 Pytorch를 받는 것이라면 밑에 삽질에 적혀있는 것이 아닌

https://pytorch.org/

 

PyTorch

An open source machine learning framework that accelerates the path from research prototyping to production deployment.

pytorch.org

여기에 먼저 들어가서 본인의 스펙을 입력한 후

Compute Platform에 적혀있는 version으로 애초에 다운 받아주자

위의 예시 인 경우 CUDA 11.7를 받고 싶다고 하면

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

여기에 들어가서 CUDA 11.7을 들어간 다음에 본인 스펙을 적으면 된다

deb 와 runfile의 차이는

저장 디렉토리 위치를 지정할 수 있냐 없냐의 차이인 것 같다(내 생각)

 

밑에 삽질에서는 deb로 다운 받지만 찾아보니 대부분 runfile로 다운받는 것 같다

(가상환경에 접속하는 것도 의미 없는 짓이다)

이런 식으로 사진에 적혀있는 명령어를 입력해주면 된다

 

 

2.. CUDA를 받았던 경우

cd /usr/local

를 들어갔을 떄 CUDA관련 폴더가 있는 경우 cuda를 받았던 경험이 있는 사람이다

근데 내 상황처럼 torch가 없어서 다운그레이드를 하고 싶은 사람은 아래와 같이하면 된다

 

일단 좋은 소식부터 말씀드리면

 

CUDA 여러 버전 함께 사용이 가능하다

 

앗 근데 runfile이 아니라 deb로 받았는데 과연 이것도 될까 라는 질문에는

한번 해보겠다(밑에 삽질 보면 알다시피 지금 deb 로 12.1 받은 상황)

위에 같이 일단 11.7을 추가로 받는 상황이다

 

뭐 이러나 저러나 일단 파일은 다운 받아야 하니 아래의 명령어 수행

sudo wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda_11.7.0_515.43.04_linux.run

(12.1 도 이걸로 받았으면 어땟을까 라는 찝찝함 ...)

 

그 다음 이걸 돌리라고 하는데

sudo sh cuda_11.7.0_515.43.04_linux.run
sudo sh cuda_11.7.0_515.43.04_linux.run --toolkit --toolkitpath=/usr/local/cuda-11.7

와 같이 옵션을 주어서

--toolkit : toolkit 만 설치

--toolkitpath : cuda toolkit가 설치될 경로

이렇게 받자

 

 

(만약 밑에 같은 상황을 연출하고 싶지 않으면 --silent 옵션을 추가해서 받으면 알아서 해준다)

sudo sh cuda_11.7.0_515.43.04_linux.run --silent --toolkit --toolkitpath=/usr/local/cuda-11.7

 

자 무서운 창이 뜬다

 

자 여기서 판단을 해야 한다

 

이전 CUDA 버전이 높은지 지금 받는 CUDA 버전이 높은지

 

이전 버전 > 받고 싶은 버전 (다운그레이드)

 

나의 경우 이전 CUDA 버전이 높다

이러한 판단이 필요한 이유는

11 이상 정도 버전이 되면 높은 수준의 NVIDIA driver가 요구된다

 

만약 위에서

sudo sh cuda_11.7.0_515.43.04_linux.run

이걸 실행시켰다면 driver를 옵션에 포함시켜서 다운로드 받아진다.

 

하지만 나는 12.1을 받을 때 driver가 설치된 상태이므로 

toolkit 만 받으려고 위에 다음과 같은 옵션을 준 것이다

 

그러면 위의 상황에서 Abort (중단)을 눌러주고 아래의 코드로 다시 실행시켜주자

sudo sh cuda_11.7.0_515.43.04_linux.run --silent --toolkit --toolkitpath=/usr/local/cuda-11.7

위에 silent 조건 때문에 제대로 설치 되었는지 불안하면

 

cd /usr/local

 

 

여기에 들어갔을 때 다음과 같이 cuda-버전 이 있으면 성공이다

 

이제 위에서 했던

sudo nano ~/.profile

을 둘다 할 수 있도록 다음과 같이 바꿔주자

export PATH=/usr/local/cuda-12.1/bin:/usr/local/cuda-11.7/bin:$PATH
export CUDADIR=/usr/local/cuda-12.1:/usr/local/cuda-11.7
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH

이러면 어떤 걸을 찾을 때 12.1 을 먼저 찾고 안되면 11.7을 찾게 된다 (필요시에 /usr/local/cuda 도 추가 할 수 있지만 밑에서 삭제할거다)

 

적용 잊지말고

source ~/.profile

nvidia-smi 는 가장 최신 버전만 출력해 주기 때문에 저렇게 나오는 거다

그래서 확인하고 싶으면 아래의 명령어를 실행하자

ls /usr/local |grep cuda

지금 보면 cuda라는 폴더도 존재 하는데

TensorFlow와 같은 프로그램들이 cuda 관련 파일을 검색할 때 /usr/local/cuda를 먼저 symbolic link하게 된다

이렇게 되면 내가 초반에 설치한 12.1 로만 되고

여러버전을 받은 의미가 없어 진다

 

그래서 과감하게 이 cuda 파일을 지우자

cd /usr/local
sudo rm cuda

어? 이러면 어떤 걸 심볼릭 링크하게 되냐 하면 밑에 명령어로 지정을 해주면 된다

sudo ln -s cuda-11.7 cuda

잘 적용되었는지 보고 싶으면

env | grep -i cuda

실행해서 cuda의 환경변수를 확인 하자

 

 

이전 버전 < 받고 싶은 버전 (업그레이드)

만약에 이전 CUDA 버전이 더 낮은 경우 Nvidia driver를 삭제해주고 다시 다운로드 받아주자 (이때는 옵션을 뺴야겠죠?)

 

아래의 명령어를 하면되긴 하는데

 

주의 하도록 하자 (본인은 이 명령어 때문인지는 모르겠지만 뭔가 꼬여서 포멧을 진행햇다 ㅠㅠ )

sudo apt-get purge nvidia*
sudo apt-get autoremove
sudo apt-get autoclean

이렇게 하고

nvidia-smi

했을 때 아무것도 없으면 성공

위에 1번 혹은 2번 진행 (아님 드라이버 부터 설치)

 

 

< Pytorch 설치 >

(가상환경이 아닌 local에 받는 중입니다 가상환경을 실행하고 밑에 과정을 진행하면 가상환경에 받아집니다)

 

이제 pytorch를 받아주자

https://pytorch.org/

 

PyTorch

An open source machine learning framework that accelerates the path from research prototyping to production deployment.

pytorch.org

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

 

끝 (경로는 상관없다)

 

확인작업을 해주자

python //파이썬을 실행하고

import torch

print(torch.cuda.is_available()) // torch 제대로 설치되었는지 확인

print(torch.__version__) //torch버전 확인

 

< 가상환경에서 torch 실행 >

이렇게 진행해도 가상환경에서는 torch 가 안된다

가장 먼저 가상환경을 생성할 때 파이썬 버전을 다음과 같이 지정할 수 있고

conda create -n torch python=3.8

실행을 시켜준 다음

conda activate torch

이 상태에서 torch를 다운 받아 주면 된다

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

당연히 버전은 위에서 받은 버전이랑 상관 없겠죠?? (11.7 이던 11.8 이던 무관)

똑같이 진행된다

완료되었으면 다시한번 확인

 

가상환경을 만들때 conda create -n torch 로만 하고 파이썬 버전을 지정 안해서 버전이 바뀌는 찝찝한 현상이 있긴하지만

성공이다

 

 

 

수고하셨습니다

 

 

 

 

 

(부록) cuda 관련 삽질


그 다음 cuda 설치

아래의 사이트에 들어가서

https://developer.nvidia.com/cuda-toolkit-archive

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

 

받아주면 되는데

나는 그냥 CUDA가 깔려있었다

nvidia-smi

 

Command 'nvidia-smi' not found, but can be installed with:

가 나온다면 깔려 있지 않은 것이다

 

그리고 아래의 명령어

nvcc -V

를 눌렀을 때 다음과 같이

 nvcc -V
Command 'nvcc' not found, but can be installed with:

sudo apt install nvidia-cuda-toolkit

가 나온다면 CUDA의 PATH 정보가 추가가 되지 않은 것이기 때문에 

위에서 나온 CUDA버전을 기억해서

sudo nano ~/.profile

export PATH=/usr/local/cuda-12.1/bin:$PATH
export CUDADIR=/usr/local/cuda-12.1
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH

들어가서 맨 아래의 다음을 추가해주자 (버전에 맞춰서)

그 다음 ctrl + s , ctrl + x 로 나와서 적용 

source ~/.profile

그래도 안되서 해당 경로로 접근해보니

cuda가 없었다

즉, 위에 나온 것은 내가 다운 받아야할 CUDA version인것 같다

리눅스를 누르고 내 컴퓨터 정보를 누르면 명령어가 나오는데 이를 실행 시키자

이렇게 runfile로 하면 좀더 간편하다 (간편한걸 넘어서 그냥 이걸로 다운 받자)

 

 

저는 혹시 되나하는 마음에 torch라는 이름의 가상환경을 실행시키고 아래의 명령어를 실행시켰습니다

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-ubuntu2004-12-1-local_12.1.0-530.30.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-1-local_12.1.0-530.30.02-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

다시 해보면 정상적으로 작동된다

이래 보니 굳이 가상환경으로 접속해서 다운 받을 필요는 없을 것 같다

이러고 나서 위에 해줬던 작업을 해주자

sudo nano ~/.profile 해줘서

export PATH=$PATH:/usr/local/cuda-12.1/bin
export CUDADIR=/usr/local/cuda-12.1
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.1/lib64

이거 잊지 말고 해주기

source ~/.profile

위의 파일 경로를 직접들어가도 

없던 cuda관련 파일들이 있는 것을 확인할 수 있다

 

pytorch 설치

 

https://pytorch.org/

 

PyTorch

An open source machine learning framework that accelerates the path from research prototyping to production deployment.

pytorch.org

여기 링크에 들어가서 본인의 스펙을 적는다

 

근데//// 12.1 이 없네??? ㅠㅠㅠ

 

 

 

 

 

 

참고자료

https://jooona.tistory.com/140

 

[Pytorch] Ubuntu 20.04에서 Pytorch 사용을 위한 환경 세팅

Ubuntu 20.04에서 GPU 모드로 Pytorch를 이용하기 위해 Nvidia driver와 Cuda, Pytorch 등 필요한 프로그램들을 설치하는 방법을 알아보겠습니다. - Nvidia Driver 설치 sudo lspci -v | less sudo ubuntu-drivers devices 위의 명

jooona.tistory.com

https://discuss.pytorch.kr/t/cuda/1277

 

초보자를 위한 CUDA 설정 다사다난 실패기 공유

안녕하세요 pytorch를 로컬 주피터 노트북에 처음 사용하기 위한 CUDA 설정을 12시간 동안 실패하다가 마침내 드디어 CUDA 설정을 완료한 진정한 pytorch 어린이입니다. (별 것 아닌걸로 기쁘면서 성취

discuss.pytorch.kr

https://m31phy.tistory.com/125

 

[CUDA] 한 컴퓨터에 여러 버전 cuda 설치하기

저의 경우에는 Diskless cluster 구조에서 몇몇 계산노드들이 서로 다른 그래픽 카드를 가지고 있습니다. 그래서 서로 다른 버전의 cuda를 설치해야하나 싶었지만, 조사를 하다보니 CUDA SDK의 compute capa

m31phy.tistory.com

 

728x90