논문을 살펴보고 해당 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 드라이버가 정상적으로 설치되어 있다는 증거이다.
만약에 안된다면 nvidia 드라이버 설치를 찾아보는 쪽이 빠르다. 대부분은 잘 설치되어 있을 것이다.
여기서 확인할 수 있는 것은 두 가지가 있는데, 첫 번째는 우리의 GPU 이름이다. 나는 RTX 3060 Ti를 사용하고 있다.
두 번째는 CUDA Version이다. 현재 사용 중인 driver와 호환이 잘되는 CUDA 버전을 의미한다.
근데 그렇다고 저 버전으로 바로 설치해서 사용하면 안된다. 이에 호환되는 PyTorch 버전이 다른데다가, 논문에서 제공하는 버전은 대부분 낮은 버전이기 때문이다.
이정도만 알아두고 관련된 정보들은 해당 블로그에 자세히 기재되어 있으니 궁금하면 들어가서 확인하면 좋을 것 같다.
GPU support CUDA SDK
GPU 모델에 맞는 compute 버전을 찾고, 해당 버전에 맞는 CUDA SDK 버전을 찾아야 한다.
차근차근 진행해보자. 표는 위키피디아에서 확인 가능하다.
1. Compute Capability
나의 GPU는 RTX 3060Ti 이기 때문에 Compute Capability, GPU semiconductors and Nvidia GPU board products 표에서 Compute capability 버전을 찾는다. 나는 8.6버전이며, Ampere이라고 불린다.
버전과 이름을 알았다면, Compute Capability (CUDA SDK support vs. Microarchitecture) 해당 표에서 지원 가능한 CUDA SDK 버전을 찾는다. 필자의 그래픽카드가 속한 Ampere은 11.0부터 12.5까지 지원 가능하다.
2. CUDA Toolkit 설치하기
호환되는 CUDA 버전을 확인하였으니 해당 버전의 Toolkit을 설치하면 된다.
어떤 버전을 써야할지 모르면 demo를 돌려보고 싶은 논문에서 설치하는 PyTorch의 버전을 보면 된다.
해당 논문에서의 pytorch 버전은 1.13인것을 확인하였고, 뒤에 보면 pytorch-cuda=11.7 인 것을 확인할 수 있다.
여기서 사용하는 CUDA는 11.7 버전이라는 것이므로 필자는 11.7 버전으로 다운로드 하겠다.
CUDA Toolkit은 아래 링크를 통해서 설치할 수 있다. 다시 말하지만 꼭 자기에게 맞는 CUDA를 설치하는 것이 1순위이다.
이를 지키지 않을 경우 PyTorch를 설치하고 나서도 호환되지 않을 문제가 생겨서 쌩고생을 해야할 수 있기 때문이다.
설치 화면에서는 사용자 정의로 들어가서 우리가 필요한 부분들만 체크하고 설치한다.
설치가 완료되면 해당 코드를 통해 정상적으로 설치되었는지 확인한다.
nvcc --version
필자는 해당 코드를 통해 정상적으로 CUDA 11.7이 설치가 된 것을 확인하였다.
3. PyTorch 설치
원하는 CUDA 버전을 설치를 잘하였다면 거의 다 왔다.
이제 CUDA와 호환되는 PyTorch 버전을 찾아서 설치하면 된다.
아래는 CUDA 버전에 따라서 달라지는 PyTorch 을 설치하는 사이트이다. 해당 사이트를 통해 원하는 PyTorch 버전을 설치하면 된다.
참고로 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 버전을 낮추어서 진행했더니 잘 되었다.
참고 자료
'Machine Learning' 카테고리의 다른 글
[Conda][아나콘다] Conda 설치 및 주요 명령어 (8) | 2024.08.26 |
---|