본문 바로가기

카테고리 없음

Pytorch 설치 - CUDA Toolkit, cuDNN 설치

Pytorch를 설치하기 위해서 CUDA 플랫폼을 사용하는 것이 필수적이다.

 

그 이유는 이전 포스팅을 참고해주세요.

 

왜 CUDA를 설치하는가?

 

Pytorch 설치 전 - 왜 CUDA를 설치하는가?

CUDA를 설치하지 않아도 Pytorch의 설치는 가능하다.하지만, 이 경우 딥러닝 연산에 CPU만 사용하기 때문에 병렬적인 연산이 많이 필요한 작업에서 어려움이 있다. 그럼 병렬 연산은 왜 중요한가? 

stat-thon.tistory.com

 

https://pytorch.kr/get-started/locally/

 

파이토치 한국 사용자 모임 (PyTorch Korea User Group)

파이토치 한국 사용자 모임에 오신 것을 환영합니다. 딥러닝 프레임워크인 파이토치(PyTorch)를 사용하는 한국어 사용자들을 위해 문서를 번역하고 정보를 공유하고 있습니다.

pytorch.kr

전반적인 설치 과정은 위 문서를 참고하면 좋다.

 

 

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

 

Download the latest official NVIDIA drivers

Download the latest official NVIDIA drivers

www.nvidia.com

 

 

2. GPU와 호환되는 CUDA Toolkit 버전 체크

아래 위키피디아 링크에서 자신의 GPU를 검색한다.

https://en.wikipedia.org/wiki/CUDA#GPUs_supported

 

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) GPU 검색하여 버전 확인

가장 왼쪽의 버전 (내 경우는 8.9)을 기억해둔다.

 

2) 상단으로 올라가서 표에서 초록색 부분에 내 버전이 어디에 있는지 확인한다.

초록색 칸의 GPU 8.9 버전은 맨 아래 두 칸에 포함되어 있다. 즉, CUDA version으로 11.8, 12.0-12.5와 호환이 되는 것이다.

 

3) 안정적인 Pytorch 버전 설치를 위해 아래 링크에서 호환되는 CUDA 버전 확인

https://pytorch.org/get-started/locally/

 

Start Locally

Start Locally

pytorch.org

 

현 시점 기준, Pytorch 버전 2.3.1이 Stable한 버전이며, CUDA 플랫폼 버전은 12.1까지는 호환되는 것으로 보인다.

 

현 시점 기준 CUDA의 최신 버전은 12.5이지만, Pytorch에서 지원/호환되는 CUDA 버전은 12.1이다.

 

 

만일, 항상 최신 버전을 사용하고 싶다면 12.5를 활용하는 방법도 있는 것 같으나 복잡해 보인다.

https://discuss.pytorch.org/t/does-pytorch-work-with-cuda-12-5/203718

 

Does Pytorch work with CUDA 12.5?

Hello! I’m new to PyTorch with CUDA and I’m trying to set it up on WSL. My CUDA version is 12.5, but the version matrix goes up to 12.4. Is this outdated or should I downgrade my CUDA for Pytorch to work? Thanks a lot

discuss.pytorch.org

 

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 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 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

 

cuDNN Archive

Download releases from the GPU-accelerated primitive library for deep neural networks.

developer.nvidia.com

 

 

여기서, 자신이 설치한 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를 써서 받는 것에는 약간의 차이가 있다. 아래 블로그 포스팅이 잘 정리해두었으니 참고

https://mingyu6952.tistory.com/entry/Anaconda-conda-install-%EA%B3%BC-pip-install%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

[Anaconda] conda install, pip install 차이

pip install과 conda install을 혼용하면 버전 차이로 인한 dependency error가 생길 수 있다. 따라서 이러한 error를 방지하기 위해서 정리해보았다. conda? pip?condaconda는 anaconda에서 지원을 받는 패키지만을

mingyu6952.tistory.com

중요한 점은 일관된 원칙으로 패키지를 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가 잘 설치됨을 확인했다.