가이드 · 시작하기

CUDA 버전 확인하는 법

nvidia-smi의 CUDA 버전은 드라이버가 지원하는 최고 버전이고, 설치된 툴킷 버전은 nvcc --version으로 확인해요. PyTorch는 자체 CUDA 런타임을 쓰기 때문에 torch.version.cuda를 따로 봐야 해요.

업데이트
읽는 시간
약 8분

CUDA 버전은 세 가지가 있어요

명령마다 아래 셋 중 다른 것을 보여 줘서, 한 서버에서 숫자가 서로 다르게 나오는 게 정상이에요.

  • 드라이버: 드라이버마다 실행할 수 있는 최고 CUDA 버전이 정해져 있어요.
  • CUDA 툴킷: nvcc 컴파일러와 개발용 라이브러리예요. CUDA 코드를 직접 컴파일할 때 필요해요.
  • 프레임워크의 CUDA 런타임: PyTorch 휠처럼 미리 빌드된 패키지에 들어 있는 CUDA 라이브러리예요. 시스템 툴킷과 따로 움직여요.

명령별로 알 수 있는 것

CUDA 관련 버전을 확인하는 명령
명령알려 주는 것주의할 점
nvidia-smi드라이버 버전, 드라이버가 지원하는 최고 CUDA 버전설치된 툴킷 버전이 아니에요
nvcc --versionPATH에 잡힌 CUDA 툴킷 버전툴킷이 없거나 PATH에 없으면 실행되지 않아요
cat /usr/local/cuda/version.json/usr/local/cuda가 가리키는 툴킷 버전CUDA 11.1부터 있어요. 그 이전은 version.txt
ls /usr/local/ | grep cuda설치된 툴킷 폴더 목록여러 버전이 함께 있을 수 있어요
torch.version.cudaPyTorch가 빌드될 때 쓴 CUDA 버전시스템 툴킷과 상관없어요
torch.backends.cudnn.version()PyTorch가 쓰는 cuDNN 버전90100처럼 숫자로 나와요
nvidia-smi --query-gpu=compute_cap --format=csvGPU의 compute capability오래된 드라이버는 지원하지 않을 수 있어요

nvidia-smi: 드라이버가 지원하는 최고 CUDA 버전

bash
nvidia-smi
text
| NVIDIA-SMI 550.54.15    Driver Version: 550.54.15    CUDA Version: 12.4 |
출력 맨 위 줄의 예시예요. 숫자는 서버마다 달라요.

오른쪽 위의 CUDA Version은 툴킷이 없어도 드라이버만 있으면 표시돼요. 툴킷을 12.1로 설치했어도 여기에는 12.4가 나올 수 있고, 이게 nvcc와 숫자가 다른 가장 흔한 이유예요.

스크립트에서 드라이버 버전만 뽑을 때는 쿼리 옵션을 써요. 나머지 항목은 nvidia-smi 사용법을 보세요.

bash
nvidia-smi --query-gpu=name,driver_version --format=csv

nvcc와 version.json: 설치된 CUDA 툴킷 버전

bash
nvcc --version
text
Cuda compilation tools, release 12.4, V12.4.131
release 뒤의 숫자가 툴킷 버전이에요.

nvcc: command not found는 툴킷이 아예 없거나, /usr/local/cuda-12.x 같은 폴더에 있는데 PATH에 등록되지 않았다는 뜻이에요. 폴더를 직접 보면 둘을 구분할 수 있어요.

bash
ls /usr/local/ | grep cuda
ls -l /usr/local/cuda
cat /usr/local/cuda/version.json
설치된 툴킷 목록, 기본 툴킷 링크, 그 툴킷의 버전 순서예요.

/usr/local/cuda는 보통 실제 버전 폴더(예: /usr/local/cuda-12.4)를 가리키는 링크라서, 툴킷이 여러 개면 이 링크가 가리키는 쪽이 기본으로 쓰여요. 폴더는 있는데 nvcc만 안 잡힌다면 PATH를 추가하세요.

bash
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
~/.bashrc에 넣어 두면 새 터미널에서도 유지돼요.

PyTorch의 CUDA와 cuDNN 버전

bash
python -c "import torch; print(torch.__version__, torch.version.cuda, torch.backends.cudnn.version())"
text
2.4.0+cu124 12.4 90100
PyTorch 버전, 빌드에 쓴 CUDA 버전, cuDNN 버전 순서예요.

cuDNN은 합성곱 같은 딥러닝 연산을 빠르게 해 주는 NVIDIA 라이브러리예요. 숫자는 cuDNN 9부터 90100이 9.1.0을, 그 이전에는 8902가 8.9.2를 뜻해요. CPU 전용 빌드라면 CUDA와 cuDNN 자리에 None이 나와요.

pip로 설치한 PyTorch는 CUDA 런타임과 cuDNN을 함께 가져와서, 시스템에 nvcc가 없거나 버전이 달라도 GPU를 쓸 수 있어요. Linux에서는 pip list | grep nvidia로 nvidia-cudnn-cu12 같은 패키지가 보여요. apt로 따로 설치한 cuDNN(dpkg -l | grep cudnn)은 이 PyTorch가 쓰지 않아요.

GPU의 compute capability 확인

compute capability는 GPU 세대를 나타내는 번호예요(V100은 7.0, RTX 3090은 8.6). CUDA 버전이나 PyTorch 빌드가 내 GPU를 지원하는지 판단하는 기준이 돼요.

bash
nvidia-smi --query-gpu=name,compute_cap --format=csv
text
name, compute_cap
NVIDIA GeForce RTX 3090, 8.6
출력 예시예요.

오래된 드라이버에서 compute_cap이 유효하지 않은 필드라는 오류가 나오면 PyTorch에서 torch.cuda.get_device_capability(0)로 확인하세요. (8, 6)처럼 나와요.

버전이 서로 다를 때의 호환 기준

드라이버가 지원하는 CUDA 버전이 앱이 빌드된 CUDA 버전과 같거나 높아야 해요. 새 드라이버로 예전 CUDA 앱을 돌리는 건 괜찮지만 반대는 안 돼요.

자주 보는 조합과 결과 (버전 숫자는 예시)
상황결과
nvidia-smi 12.4, torch.version.cuda 12.1동작해요. 드라이버 쪽이 더 높아요.
nvidia-smi 12.4, nvcc 12.1정상이에요. 툴킷은 드라이버가 지원하는 버전 이하면 돼요.
nvidia-smi 11.8, torch.version.cuda 12.4GPU를 쓸 수 없어요. 드라이버를 올리거나 더 낮은 CUDA로 빌드된 PyTorch를 설치하세요.
nvcc 12.4, torch.version.cuda 12.1PyTorch 실행에는 상관없어요. CUDA 확장을 빌드할 때만 맞춰야 해요.

같은 메이저 버전(예: 12.x) 안에서는 드라이버가 조금 낮아도 동작하는 경우가 많지만, 일부 기능이 제한될 수 있어요.

nvcc 버전은 CUDA 코드가 든 패키지를 소스에서 빌드하거나 PyTorch용 C++/CUDA 확장을 컴파일할 때 중요해요. 이때는 메이저 버전이 torch.version.cuda와 같아야 하고, 마이너 버전까지 맞추면 더 안전해요. PyTorch가 GPU를 아예 못 쓴다면 PyTorch에서 GPU를 인식하지 못할 때를 보세요.

Shelf GPU 서버에서 확인할 때

Shelf의 환경 템플릿은 드라이버까지 설치해 줘요. 예시 환경인 ‘Ubuntu 22.04 + CUDA 12.4’와 ‘PyTorch 2.4 Notebook’은 둘 다 CUDA 12.4 기준이에요. 서버를 만든 뒤 위 명령으로 드라이버와 PyTorch의 CUDA 버전을 한 번 확인하고 시작하세요.

지금 만들 수 있는 GA102 20GB와 RTX 3090 24GB는 둘 다 compute capability 8.6이에요. 준비 중인 GPU는 V100 16GB가 7.0, A100 80GB가 8.0, RTX 3060 Ti 8GB가 8.6, AD103-32GB가 8.9예요.

자주 묻는 질문

Docker 컨테이너 안에서는 어떻게 확인하나요?

컨테이너 안의 nvidia-smi는 호스트 드라이버 기준 값을 보여 줘요. nvidia/cuda 이미지로 만든 컨테이너라면 보통 echo $CUDA_VERSION으로 이미지에 든 툴킷 버전을 볼 수 있어요.

Windows에서는 CUDA 버전을 어떻게 확인하나요?

명령 프롬프트나 PowerShell에서 nvidia-smi와 nvcc --version을 똑같이 쓸 수 있어요. 툴킷은 보통 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA 아래에 버전별 폴더로 설치돼요.

GPU 서버가 필요할 때

필요한 GPU와 개발 환경을 골라 시간 단위로 시작해요.