C.W.K.
Stream
Lesson 02 of 05 · published

Driver, Toolkit, NVCC — 세 층

~14 min · cuda, driver, toolkit, nvcc, compatibility

Level 0Beginner
0 XP0/38 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

셋이 합 안 맞으면 아무것도 안 돌아

'CUDA 깔아' 는 오해 부르는 instruction이야. CUDA라는 한 덩어리는 없어. 세 층이고 각자 release cadence 다르고 호환성 맞아야 해:

  1. Driver — kernel-mode 소프트웨어, GPU 실리콘이랑 직접 대화. NVIDIA가 거의 매주 업데이트. driver는 최대 지원 CUDA runtime version을 광고해.
  2. Toolkit — userland header, library (cuBLAS, cuDNN, cuFFT 등), tool (NVCC, Nsight). 'CUDA 13.0', 'CUDA 13.2' 식으로 몇 달마다 release.
  3. NVCC — toolkit 안에 있는 컴파일러 binary. .cu source를 fat binary로 컴파일하는데 PTX + 여러 SASS variant 들어 있어 (sm_75 Turing, sm_86 Ampere, sm_89 Ada Lovelace, sm_90 Hopper).

호환성 룰: driver의 최대 지원 CUDA version ≥ 컴파일에 쓴 toolkit version. CUDA 13.2 toolkit으로 컴파일한 binary는 CUDA 12.4까지만 지원하는 driver에선 안 돌아. driver가 floor야.

관료 같은 얘기 같지? 뭐 깨질 때까진 그래. 깨지는 순간 nvidia-smi 출력 보면서 driver냐 toolkit이냐 binary의 SASS target이냐 쫓아다녀. 멘털 모델: 버전 맞춰 깔고, binary에 맞는 SASS 박아.

AI 작업할 때 왜 중요하냐면 PyTorch, TensorFlow, JAX, MLX 다 특정 compute capability용 pre-compiled CUDA 커널을 wheel로 ship해. 30-series에서 40-series로 GPU 업그레이드하면 sm_89 SASS 들어간 새 framework wheel 필요할 수도 있어 — 안 그래도 PTX JIT으로 돌긴 하는데, 시동 시간 느려져.

Code

nvidia-smi — driver + 최대 지원 CUDA version 확인·bash
nvidia-smi
# 우상단 셀에 표시: 'CUDA Version: 13.2'
# 이게 MAX 지원 runtime이지 toolkit 설치 버전 아님.
# 13.2 driver는 toolkit 13.2 이하로 빌드한 binary 다 돌림.

nvidia-smi --query-gpu=driver_version,name,compute_cap --format=csv
# driver_version, name,                compute_cap
# 555.99,         NVIDIA GeForce RTX 4090, 8.9
nvcc — 설치된 toolkit 확인·bash
nvcc --version
# nvcc: NVIDIA (R) Cuda compiler driver
# Cuda compilation tools, release 13.2, V13.2.140
# Build cuda_13.2.r13.2/compiler.34123456_0

# 실제 가진 architecture로 컴파일:
nvcc -arch=sm_89 hello.cu -o hello   # sm_89 = Ada Lovelace (RTX 4090)

# 여러 architecture로 컴파일 (fat binary):
nvcc -gencode arch=compute_86,code=sm_86 \
     -gencode arch=compute_89,code=sm_89 \
     hello.cu -o hello

External links

Exercise

NVIDIA GPU 쓸 수 있는 머신 아무거나 골라서 nvidia-smi + nvcc --version 둘 다 돌려봐 (nvcc 없으면 깔아). 적어두기: (a) driver version, (b) nvidia-smi의 CUDA Version, (c) nvcc의 toolkit version, (d) GPU 이름 + compute capability. toolkit ≤ driver-CUDA-version인지 확인. NVIDIA 박스 없으면 Colab 무료 (T4)나 Kaggle 노트북 (P100/T4)에서 같은 거 — 셋 다 default 출력에 보여줘.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.