RTX 50 시리즈에서 PyTorch CUDA 환경 세팅 (sm_120, cu128)

RTX 50 시리즈(5070, 5080, 5090 등)로 그래픽카드를 바꾼 뒤 기존 파이썬 AI 환경을 그대로 실행하면 아래 같은 경고나 오류가 나오는 경우가 많습니다.

NVIDIA GeForce RTX 5070 with CUDA capability sm_120 is not compatible with the current PyTorch installation.
RuntimeError: CUDA error: no kernel image is available for execution on the device

RTX 50 시리즈는 Blackwell 아키텍처(연산 능력 12.0, sm_120)를 쓰는데, 이 아키텍처용 코드는 CUDA 12.8부터 지원됩니다. 즉 예전 CUDA로 빌드된 PyTorch에는 이 GPU용 코드가 들어 있지 않아서 생기는 문제입니다.

1. 필요한 버전 정리

구성 요소조건
NVIDIA 드라이버R570 이상 (최신 Game Ready 또는 Studio 드라이버 권장)
CUDA12.8 이상 (PyTorch 휠에 런타임 포함되므로 툴킷 별도 설치는 직접 빌드할 때만 필요)
PyTorchcu128 이상으로 빌드된 버전 (2.7 이후 공식 제공)
파이썬설치하려는 PyTorch 버전이 지원하는 범위 (보통 3.10~3.12가 무난)

2. 드라이버 확인

nvidia-smi

오른쪽 위 CUDA Version은 드라이버가 지원하는 최대 CUDA 버전입니다. 12.8 이상으로 나오면 드라이버는 준비된 것입니다. 낮게 나오면 NVIDIA 사이트에서 최신 드라이버를 설치합니다.

3. 가상환경 만들고 cu128 PyTorch 설치

기존 환경에 덮어 설치하면 다른 패키지와 꼬이기 쉬우니 새 가상환경을 권장합니다.

# 윈도우 (PowerShell)
py -3.12 -m venv .venv
.venv\Scripts\Activate.ps1

# 리눅스 / WSL2
python3.12 -m venv .venv
source .venv/bin/activate

# 공통: CUDA 12.8 빌드 설치
pip install --upgrade pip
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128

PyTorch 공식 사이트의 설치 선택기에서 더 높은 CUDA 빌드(예: cu129, cu130)가 제공되면 그것을 써도 됩니다. 핵심은 cu128 이상입니다.

4. 설치 확인

python -c "import torch; print(torch.__version__, torch.version.cuda); print(torch.cuda.is_available(), torch.cuda.get_device_name(0), torch.cuda.get_device_capability(0)); print(torch.cuda.get_arch_list())"
  • torch.version.cuda가 12.8 이상
  • get_device_capability가 (12, 0)
  • get_arch_list()에 sm_120이 포함

세 가지가 모두 맞으면 정상입니다. 간단한 연산으로 실제 GPU 실행도 확인해 봅니다: python -c "import torch; x=torch.randn(4096,4096,device='cuda'); print((x@x).sum().item())"

5. 자주 걸리는 패키지

패키지증상과 대응
xformers, flash-attention사전 빌드가 sm_120을 지원하는지 확인. 미지원이면 PyTorch 기본 SDPA로 대체하거나 소스 빌드
bitsandbytes구버전은 Blackwell 미지원. 최신 버전으로 업데이트
faster-whisper / CTranslate2CUDA 12 계열 cuDNN 9가 필요. 최신 버전 사용
오래된 requirements.txttorch==2.1처럼 고정된 버전이 cu128 설치를 덮어씀. 버전 고정을 풀고 torch를 먼저 설치

6. 윈도우에서 WSL2를 쓸 때

  • 드라이버는 윈도우에만 설치합니다. WSL 안에 리눅스용 NVIDIA 드라이버를 따로 설치하면 안 됩니다.
  • WSL에서 nvidia-smi가 동작하면 GPU가 연결된 것이고, 이후 3~4단계를 WSL 안에서 그대로 진행합니다.
  • 데이터셋은 /mnt/c 아래가 아니라 WSL 리눅스 파일 시스템(홈 디렉터리)에 두는 편이 입출력이 훨씬 빠릅니다.

정리

  • 원인은 sm_120 코드가 없는 구버전 PyTorch
  • 드라이버 R570+ → 새 가상환경 → cu128 이상 PyTorch
  • 확인은 torch.version.cuda, capability (12, 0), arch list의 sm_120

댓글 남기기