Pytorch를 설치하기 위해서 CUDA 플랫폼을 사용하는 것이 필수적이다.
그 이유는 이전 포스팅을 참고해주세요.
https://pytorch.kr/get-started/locally/
전반적인 설치 과정은 위 문서를 참고하면 좋다.
Pytorch 설치 전에 우선 python, Anaconda 등의 설치는 당연히 진행되어 있어야 한다.
이 과정은 다루지 않고 생략한다.
다음으로, NVIDIA 드라이버가 설치되어 있는지 확인할 필요가 있다.
(NVIDIA 드라이버가 GPU를 제대로 인식하고 사용할 수 있도록 확인해주기 때문에 필요하다.)
자신의 PC에 내장된 GPU와 호환되는 CUDA Toolkit, cuDNN 버전을 체크한 후 설치하는 과정이 필요하다.
그리고 각 CUDA Toolkit, cuDNN 버전에 맞는 Pytorch 버전을 설치하면 되겠다.
1. NVIDIA 드라이버 설치
처음 PC를 구매하고 게임을 설치하거나 업데이트 하는 과정에서 자연스럽게 설치한 사람도 있을 것이다.
그래서 NVIDIA 드라이버 설치가 되어있지 않은 경우에만 드라이버를 설치하면 되겠다.
우선, 자신의 컴퓨터에 NVIDIA 드라이버가 설치되어 있는지 확인하는 간단한 방법은
1) 시작 - cmd 입력
2) 명령 프롬프트 창에 nvidia-smi 입력
만약 드라이버가 설치되지 않은 경우에는 아래 공식 링크에서 자신의 GPU와 OS에 맞는 드라이버를 직접 설치하자.
https://www.nvidia.com/Download/index.aspx
2. GPU와 호환되는 CUDA Toolkit 버전 체크
아래 위키피디아 링크에서 자신의 GPU를 검색한다.
https://en.wikipedia.org/wiki/CUDA#GPUs_supported
1) GPU 검색하여 버전 확인
2) 상단으로 올라가서 표에서 초록색 부분에 내 버전이 어디에 있는지 확인한다.
3) 안정적인 Pytorch 버전 설치를 위해 아래 링크에서 호환되는 CUDA 버전 확인
https://pytorch.org/get-started/locally/
현 시점 기준 CUDA의 최신 버전은 12.5이지만, Pytorch에서 지원/호환되는 CUDA 버전은 12.1이다.
만일, 항상 최신 버전을 사용하고 싶다면 12.5를 활용하는 방법도 있는 것 같으나 복잡해 보인다.
https://discuss.pytorch.org/t/does-pytorch-work-with-cuda-12-5/203718
Pytorch discussion 페이지를 보면, 12.5 버전도 Pytorch를 활용할 수 있다고는 하는데 로컬에 설치된 CUDA toolkit 버전은 활용되지 않을 수 있다는 내용이 있다.
아마도 사용자 편의를 위해 Pytorch에는 자체 CUDA 종속성이 포함되어 있어 별도로 설치한 CUDA 라이브러리를 사용하지 않고, Pytorch에 포함된 CUDA 라이브러리 버전을 사용하는 것 같다.
만약에 로컬에 설치한 다른 버전을 사용하고자 하면 Pytorch 소스코드에서 직접 빌드를 하면 된다고 한다.
이런 자체적인 빌드 작업을 원하지는 않고 안정적인 활용을 위해서 12.1 버전을 받기로 결정했다.
3. CUDA Toolkit 설치
https://developer.nvidia.com/cuda-toolkit-archive
위 페이지에서 설치하고자 하는 CUDA Toolkit 버전을 설치한다.
설치되고 나면 실행파일을 누르고 설치한다.
https://www.reddit.com/r/CUDA/comments/jo36qm/can_i_install_cuda_in_d_drive/
Reddit에서 CUDA를 D drive에 설치하는 것도 가능한지 몇 가지 글을 찾아보니 성능에 영향을 미치지 않는다고 한다.
특별히 설치 중에 신경써야 할 옵션은 없다.
설치를 마무리 하자.
4. cuDNN 설치
https://developer.nvidia.com/rdp/cudnn-archive
여기서, 자신이 설치한 CUDA Toolkit의 버전과 호환되는 cuDNN을 찾으면 된다.
내가 받은 CUDA Toolkit의 버전은 12.1이므로 for CUDA 12.x에 해당하여 위 인스톨러를 받았다.
Local Installer for Windows를 받으면 된다.
단, 이 과정에서 nvidia 계정이 필요한데, 파이어폭스에서 하면 인증이 잘 안 된다. (여러모로 파이어폭스는 지원하지 않는 경우가 많다.)
크롬에서 인증하면 잘 되니 참고.
다운로드 파일의 압축을 풀면, bin, include, lib 폴더 내에 파일이 있는 것을 확인할 수 있다.
각 폴더 내의 파일을 아까 설치했던 CUDA Toolkit 경로의 동일한 폴더에 복사/붙여넣기 하자.
(근데, 아까 분명 D드라이브에 설치했는데, CUDA Toolkit이 C드라이브에 설치되어 있다. 이유는 모르겠음)
5. 환경 변수 확인
추가로, 이를 잘 마쳤다면 시스템 환경 변수 편집에 들어가서 CUDA_PATH가 정상적으로 환경변수에 추가되었는지 확인한다.
1) 시작 - 시스템 환경 변수 편집
2) 환경 변수
3) 시스템 변수 내에 CUDA_PATH 확인
번외) CUDA 설치 여부 확인
명령 프롬프트에서 CUDA가 정상적으로 설치되었는지 확인한다.
nvcc --version
잘 설치되었다.
6. Pytorch 설치
이제 Anaconda Prompt를 키고 가상환경을 생성한 후 해당 가상환경에 pytorch를 설치하면 된다.
우선, pytorch를 쓰기 위한 가상환경을 따로 생성했다.
conda create -n <가상환경 이름>
그리고 해당 가상환경으로 이동해 Run this command의 명령어를 입력해 pytorch, torchvision, torchaudio를 설치해준다.
※ 이 때, conda로 받는것과 pip3를 써서 받는 것에는 약간의 차이가 있다. 아래 블로그 포스팅이 잘 정리해두었으니 참고
중요한 점은 일관된 원칙으로 패키지를 install 하지 않으면 나중에 패키지 간에 종속성 문제가 발생할 수 있다는 점이다.
패키지 종속성은 하나의 소프트웨어 패키지가 동작하기 위해 필요한 다른 소프트웨어 패키지 라이브러리를 말한다
어떤 패키지를 받으면 다른 패키지도 같이 주루루룩 받아지는 걸 본 적이 있을 것이다.
두 개 이상의 패키지가 설치되었는데 서로 호환되지 않는 버전을 요구할 때 종속성 충돌 문제가 발생할 수 있다.
conda는 이런 종속성을 자동적으로 해결해주는 편이어서 안정적인 편이다.
나는 Conda를 사용하기로 했다.
pytorch, torchvision, torchaudio의 설치를 마쳤다.
7. torch 작동 확인
간단히 torch를 import 해보고, cuda core사용 가능 여부와 torch version을 확인하여 마무리 한다.
import torch
print(f"get device name : {torch.cuda.get_device_name(0)}")
print(f"is available : {torch.cuda.is_available()}")
print(f"torch version : {torch.__version__}")
2.3.1 torch가 잘 설치됨을 확인했다.