Machine Learning

GPU를 local에서 사용하자 - CUDA, PyTorch 설치 및 버전 호환

꿈을 파는 두더지 2024. 8. 9. 19:44

논문을 살펴보고 해당 demo를 local에서 돌려보고 싶을 때 필요한 PyTorch 버전과 CUDA 버전이 다르다는 것을 확인했다.

그리고 무엇보다, 우리가 쓰고 있는 컴퓨터의 GPU을 사용하기 위해서는 CUDA와 PyTorch를 사용해야 하며, 둘의 버전이 서로 호환되어야 사용할 수 있다. 관련 자료들을 참고하면서 도움을 받긴 했지만 내용들이 너무 분리되어 있어서 하나로 정리하고 이 글을 쓰게 되었다.

 

PyTorch GPU 호환 확인

이게 제일 중요하고, 사실 이게 되면 local GPU를 바로 사용 가능하다는 뜻이다.
(근데, 일반적으로는 처음일때는 CUDA가 설치되어 있지 않은 상황이라 안될 것이다.)

python -c "import torch; print(torch.cuda.is_available())"

해당 결과가 True가 뜨면 GPU가 사용 가능하다는 뜻이고, False가 나오면 GPU를 사용 불가능하다는 의미이다.

사용 불가능하다면 이제부터 CUDA와 Torch를 각각 설치하며 버전을 호환시켜야 한다.

 

GPU 확인

현재 사용하고 있는 GPU를 아는 것이 첫번째다. 아래 명령어를 통해 현재 컴퓨터에 내장되어 있는 GPU 정보를 확인할 수있다.

nvidia-smi

nvidia-smi result (GPU 상세 설명)

이 명령어가 실행된다는 것은 nvidia 드라이버가 정상적으로 설치되어 있다는 증거이다.
만약에 안된다면 nvidia 드라이버 설치를 찾아보는 쪽이 빠르다. 대부분은 잘 설치되어 있을 것이다.

여기서 확인할 수 있는 것은 두 가지가 있는데, 첫 번째는 우리의 GPU 이름이다. 나는 RTX 3060 Ti를 사용하고 있다.
두 번째는 CUDA Version이다. 현재 사용 중인 driver와 호환이 잘되는 CUDA 버전을 의미한다.
근데 그렇다고 저 버전으로 바로 설치해서 사용하면 안된다. 이에 호환되는 PyTorch 버전이 다른데다가, 논문에서 제공하는 버전은 대부분 낮은 버전이기 때문이다.

이정도만 알아두고 관련된 정보들은 해당 블로그에 자세히 기재되어 있으니 궁금하면 들어가서 확인하면 좋을 것 같다.

 

GPU 서버 사용법 - CUDA, PyTorch 버전 맞추기 (총정리)

논문 구현을 해볼 때마다 PyTorch버전에 따라 필요한 CUDA 버전이 다르고, 버전이 서로 맞지 않아 시간을 낭비하는 경우가 많았다. 이를 해결하기 위해 (내가 썼던..) 여러 글을 참조해서 docker 컨테

jjuke-brain.tistory.com

 

GPU support CUDA SDK

GPU 모델에 맞는 compute 버전을 찾고, 해당 버전에 맞는 CUDA SDK 버전을 찾아야 한다.
차근차근 진행해보자. 표는 위키피디아에서 확인 가능하다.

 

CUDA - Wikipedia

From Wikipedia, the free encyclopedia Parallel computing platform and programming model In computing, CUDA (originally Compute Unified Device Architecture) is a proprietary[1] parallel computing platform and application programming interface (API) that all

en.wikipedia.org

 

1. Compute Capability

나의 GPU는 RTX 3060Ti 이기 때문에 Compute Capability, GPU semiconductors and Nvidia GPU board products 표에서 Compute capability 버전을 찾는다. 나는 8.6버전이며, Ampere이라고 불린다.

그래픽카드에 맞는 Compute Capability

버전과 이름을 알았다면, Compute Capability (CUDA SDK support vs. Microarchitecture) 해당 표에서 지원 가능한 CUDA SDK 버전을 찾는다. 필자의 그래픽카드가 속한 Ampere은 11.0부터 12.5까지 지원 가능하다.

이름에 따라 지원되는 CUDA SDK 버전

 

2. CUDA Toolkit 설치하기

호환되는 CUDA 버전을 확인하였으니 해당 버전의 Toolkit을 설치하면 된다.
어떤 버전을 써야할지 모르면 demo를 돌려보고 싶은 논문에서 설치하는 PyTorch의 버전을 보면 된다.

멀티모달 논문 mPLUG-Owl에서의 설치법

해당 논문에서의 pytorch 버전은 1.13인것을 확인하였고, 뒤에 보면 pytorch-cuda=11.7 인 것을 확인할 수 있다.
여기서 사용하는 CUDA는 11.7 버전이라는 것이므로 필자는 11.7 버전으로 다운로드 하겠다.

CUDA Toolkit은 아래 링크를 통해서 설치할 수 있다. 다시 말하지만 꼭 자기에게 맞는 CUDA를 설치하는 것이 1순위이다.
이를 지키지 않을 경우 PyTorch를 설치하고 나서도 호환되지 않을 문제가 생겨서 쌩고생을 해야할 수 있기 때문이다.

 

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 사용자 정의 설치 화면

 

설치가 완료되면 해당 코드를 통해 정상적으로 설치되었는지 확인한다.

nvcc --version

필자는 해당 코드를 통해 정상적으로 CUDA 11.7이 설치가 된 것을 확인하였다.

CUDA 11.7 버전

 

3. PyTorch 설치

원하는 CUDA 버전을 설치를 잘하였다면 거의 다 왔다.
이제 CUDA와 호환되는 PyTorch 버전을 찾아서 설치하면 된다.
아래는 CUDA 버전에 따라서 달라지는 PyTorch 을 설치하는 사이트이다. 해당 사이트를 통해 원하는 PyTorch 버전을 설치하면 된다.

 

Previous PyTorch Versions

Installing previous versions of PyTorch

pytorch.org

 

참고로 conda로 하여도 되고, pip install을 통해서도 진행해도 된다.
나는 버전 관리를 위해서 conda로 설치하였으며, pytorch 2.0버전으로 설치하였다.

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

 

최종 확인

모든 것이 다 잘 작동되는지 코드로 확인해보자. python 파일 하나 만들어서 실행하면 좋다.

import torch
print(torch.__version__)
print(torch.cuda.is_available())
print(torch.version.cuda)

잘 나온 것을 확인하였다. 혹시나 2번째 줄이 False로 되어있거나 3번째 줄이 None으로 되어 있다면 cuda와 pytorch 버전이 안 맞는 것이므로 다시 잘 맞춰서 진행하자.
팁을 좀 주자면, 최신 버전을 사용하는 것은 좋지 않다. 필자도 12.6이 잘 지원된다고 해서 설치했으나 이에 호환되는 pytorch 버전이 없어 11.7 버전을 낮추어서 진행했더니 잘 되었다.

 

참고 자료

 

CUDA toolkit 설치하기, PyTorch GPU 호환 버전 설치하기 (PyTorch 2.0.1+cpu 오류, CUDA 설치 호환, PyTorch CUDA

PyTorch를 GPU에서 돌아가는 CUDA 호환 버전으로 설치하자. pytorch gpu 호환 확인python -c "import torch; print(torch.cuda.is_available())"이미 pytorch를 설치했다면, gpu가 사용가능한지 확인해보자.사용가능한 상태

like-grapejuice.tistory.com

 

 

GPU 서버 사용법 - CUDA, PyTorch 버전 맞추기 (총정리)

논문 구현을 해볼 때마다 PyTorch버전에 따라 필요한 CUDA 버전이 다르고, 버전이 서로 맞지 않아 시간을 낭비하는 경우가 많았다. 이를 해결하기 위해 (내가 썼던..) 여러 글을 참조해서 docker 컨테

jjuke-brain.tistory.com

 

 

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

Pytorch를 pip로 설치하면 간단 할 것 같은데, 막상 설치하려고 하면 Pytorch버전에 따라 CUDA 버전, python 버전을 고려해야하고, CUDA 버전은 그래픽카드를 고려해야합니다. 이 글에서는 Pytorch 버전에 따

xoft.tistory.com

 

'Machine Learning' 카테고리의 다른 글

[Conda][아나콘다] Conda 설치 및 주요 명령어  (8) 2024.08.26