Deep Learning & Machine Learning/Tensorflow&PyTorch 개발환경

Windows에 CUDA 사용할 수 있도록 PyTorch 설치하는 방법

webnautes 2025. 1. 27. 09:20
반응형

Windows 에 CUDA 11.8과  PyTorch를 설치하는 방법을 설명합니다.

 

2023. 5. 7 최초작성

2023. 9. 9

2024. 1. 7 별도의 CUDA 없이 설치

2024. 3. 16 NVIDIA 그래픽 카드 드라이버 설치 방법 분리

                  글 업데이트

2025. 1. 27  글 업데이트 



NVIDIA 그래픽 카드 드라이버 설치

다음 포스트를 참고하여 최신 버전 NVIDIA 그래픽 카드 드라이버를 설치하는 것을 권장합니다. 최신 버전 PyTorch에서 최신 버전 CUDA를 요구하는 경우에 최신 버전의 NVIDIA 그래픽 카드 드라이버 설치가 필요하기 때문입니다. 

 

특별한 경우를 제외하고는 CUDA를 따로 설치할 필요는 없습니다. 

 

Windows에 NVIDIA 그래픽 카드 드라이버 설치하기

https://webnautes.tistory.com/2292 



PyTorch 설치

 

1.  개발환경으로 두가지 방법을 소개합니다. 



첫번째 방법은 다음 주소에서 Python을 다운로드하여 설치하고 이후 Visual Studio Code와 같이 사용하는 것입니다. 설치시 PATH를 추가해야 합니다. Python 3.9 이상을 다운로드 해야 합니다. 

 

https://www.python.org/downloads/windows/  




두번째 방법은 Miniconda를 설치 후, Visual Studio Code와 같이 사용하는 것입니다. 

 

Visual Studio Code와 Miniconda를 사용한 Python 개발 환경 만들기( Windows, Ubuntu, WSL2)

https://webnautes.tistory.com/1842





2. 아래 링크에 접속하여 Your OS는 Windows, Package는 파이썬 환경에 따라  Conda 또는 Pip, Language는 Python, Compute Platform은 CUDA 11.8 또는 CUDA 12.1 또는 CUDA 12.4를 선택하면 아래쪽에 명령어가 보입니다. 

 

현재 2025년 1월 27일 기준으로 보이는 선택항목이며 나중에 바뀔 수 있습니다. 

 

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



1번에서 첫번째 방법을 사용했다면 다음처럼 선택하여 나온 명령을 사용하여 설치하세요.  Package 항목은 pip를 선택해야 합니다. 

 



pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118



설치완료후 done이 출력됩니다.



1번에서 두번째 방법을 선택했다면  

 

 윈도우 키를 누르고  anaconda를 입력하여 검색된 Anaconda Prompt (miniconda3)를 실행합니다. 

 




PyTorch를 위한 가상환경을 생성합니다. 포스트에서는 Python 3.9 이상을 사용하는 파이썬 가상환경을 만듭니다. 

 

(base) C:\Users\webnautes>conda create -n pytorch python=3.10



y입력후 엔터를 누릅니다.

 

Proceed ([y]/n)?



가상 환경을 활성화합니다. 

 

(base) C:\Users\webnautes>conda activate pytorch

 

(pytorch) C:\Users\webnautes>




다음처럼 선택해서 아래쪽에 보이는 명령을 사용하여 PyTorch를 설치하세요.

 

 

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



설치완료후 done이 출력됩니다.




3. 파이썬 인터프리터에서 PyTorch가 GPU를 사용할 수 있는지 체크합니다.마지막에 True가 나와야 합니다. 

 

(pytorch) C:\Users\webnautes> python -c "import torch; print(torch.cuda.is_available())"

True




간단한 코드로 테스트해봅니다.

 

import torch

# CUDA 사용 가능 여부 확인
print(f"CUDA 사용 가능 여부: {torch.cuda.is_available()}")
print(f"현재 디바이스: {torch.cuda.get_device_name(0)}")

# 텐서 생성 및 디바이스 이동 테스트
# CPU에서 텐서 생성
x = torch.randn(3, 3)
print(f"\nCPU 텐서:\n{x}")
print(f"텐서의 현재 디바이스: {x.device}")

# GPU로 텐서 이동
if torch.cuda.is_available():
    x_cuda = x.cuda()  # 또는 x_cuda = x.to('cuda')
    print(f"\nGPU 텐서:\n{x_cuda}")
    print(f"텐서의 현재 디바이스: {x_cuda.device}")
   
    # 간단한 연산 테스트
    y_cuda = x_cuda * 2
    print(f"\nGPU 연산 결과:\n{y_cuda}")
   
    # GPU -> CPU로 다시 이동
    y_cpu = y_cuda.cpu()
    print(f"\nCPU로 다시 이동한 결과:\n{y_cpu}")
else:
    print("\nCUDA를 사용할 수 없습니다.")




실행결과입니다.

 

CUDA 사용 가능 여부: True

현재 디바이스: NVIDIA GeForce GTX 1660 Ti

 

CPU 텐서:

tensor([[-0.6161,  0.4060,  0.7277],

        [ 0.8452,  0.5340,  0.6390],

        [ 1.3166, -1.2067,  0.4647]])

텐서의 현재 디바이스: cpu

 

GPU 텐서:

tensor([[-0.6161,  0.4060,  0.7277],

        [ 0.8452,  0.5340,  0.6390],

        [ 1.3166, -1.2067,  0.4647]], device='cuda:0')

텐서의 현재 디바이스: cuda:0

 

GPU 연산 결과:

tensor([[-1.2321,  0.8119,  1.4554],

        [ 1.6904,  1.0679,  1.2780],

        [ 2.6332, -2.4134,  0.9293]], device='cuda:0')

 

CPU로 다시 이동한 결과:

tensor([[-1.2321,  0.8119,  1.4554],

        [ 1.6904,  1.0679,  1.2780],

        [ 2.6332, -2.4134,  0.9293]])

 

반응형