PyTorch는 GPU에 대한 탁월한 지원과 계산 그래프를 즉시 수정할 수 있는 후진 방식 자동 미분 기능을 사용하는 것이 특징입니다. 따라서 빠른 실험과 프로토타이핑을 위해 널리 사용된다. PyTorch에서 GPU를 사용하기 위해서는 별도의 모델이 필요한데 가장 많이 사용되는 것이 NVIDIA에서 개발한 CUDA이다.
CUDA 설치
cuda를 설치하기 위해서는 cuda를 지원하는 그래픽 카드가 필요하다.
Pytorch 설치
다음으로 pytorch를 설치해보자.
적절한 환경을 선택하고 "이 명령을 실행하세요" 를 실행하면 된다. 위에서 설치한 cuda 버전이 13.0이지만 큰 문제는 없어보인다.
동작 확인
설치가 완료되었다면 다음 파이썬 프로그램을 실행해보자.
import torch
# CUDA 사용 가능 여부 확인
print("CUDA 사용 가능:", torch.cuda.is_available())
if torch.cuda.is_available():
print(f"GPU 개수: {torch.cuda.device_count()}")
print(f"GPU 이름: {torch.cuda.get_device_name(0)}")
print(f"CUDA 버전: {torch.version.cuda}")
# 간단한 GPU 테스트
x = torch.tensor([1.0, 2.0, 3.0]).cuda()
y = x * 2
print(f"GPU 테스트 결과: {y.cpu().numpy()}")
print("✓ CUDA가 정상적으로 작동합니다!")
else:
print("✗ CUDA를 사용할 수 없습니다. CPU를 사용합니다.")
x = torch.tensor([1.0, 2.0, 3.0])
y = x * 2
print(f"CPU 테스트 결과: {y.numpy()}")
CUDA 사용 가능: True
GPU 개수: 1
GPU 이름: NVIDIA GeForce GT 1030
CUDA 버전: 12.8
GPU 테스트 결과: [2. 4. 6.]
✓ CUDA가 정상적으로 작동합니다!
Apple Silicon 환경
위에서 설정한 cuda는 MacOS에서는 지원하지 않는다. 대신 MacOS에서는 Apple Silicon에서 제공하는 MPS(Metal Performance Sharders)를 사용한다.
특별히 무언가를 설치할 필요는 없다. 확인 코드는 다음과 같다.
import torch
device = torch.device("cpu")
if torch.backends.mps.is_available():
device = torch.device("mps")
if torch.cuda.is_available():
device = torch.device("cuda")
print(f"Using device: {device}")
성능은 CUDA를 따라가기 어렵다. 일반적으로 MPS는 CPU 대비 3~5배의 성능을 내지만 CUDA 대비 60~80% 정도라고 한다. 지금은 MAC이니까 어쩔 수 없이 MPS? 정도라고 볼 수 있다.