본문으로 건너뛰기

GPU 드라이버

nvidia-smi가 동작하지 않아요

원인

Ubuntu 커널이 apt upgrade 또는 unattended-upgrades로 업데이트된 후 재부팅 시, NVIDIA 드라이버 DKMS 재빌드가 실패하면 모듈 로드가 안 됩니다.

확인

# 커널 버전 확인
uname -r

# 드라이버 모듈 로드 상태 확인
lsmod | grep nvidia

# DKMS 빌드 상태 확인
sudo dkms status

해결

# 현재 커널에 맞게 DKMS 재빌드
KERNEL=$(uname -r)
DRIVER=$(dkms status | grep nvidia | head -1 | awk -F'[, ]' '{print $2}')

sudo dkms install nvidia/$DRIVER -k $KERNEL

# 모듈 재로드
sudo modprobe nvidia
nvidia-smi

재빌드 후에도 실패하면 가상머신을 재시작합니다.

재발 방지

  • apt 작업은 tmux 안에서 실행하세요. SSH 세션이 끊겨도 DKMS 빌드가 중단되지 않습니다.

    tmux # 또는 tmux attach
    sudo apt upgrade
  • 자동 커널 업데이트를 끄려면 unattended-upgrades를 제거합니다.

    sudo apt remove unattended-upgrades

Driver/Library version mismatch 오류

원인

가상머신 내부에서 NVIDIA 드라이버를 수동으로 업데이트했거나, 패키지 설치 도중 드라이버가 변경된 경우 발생합니다.

확인

nvidia-smi
# NVIDIA-SMI has failed because it couldn't communicate with NVIDIA driver
# 또는
# Driver Version: X CUDA Version: Y
cat /proc/driver/nvidia/version
python3 -c "import torch; print(torch.version.cuda)"

두 버전이 다르면 mismatch입니다.

해결

먼저 드라이버 모듈을 모두 언로드한 뒤 같은 순서의 역으로 다시 로드해 봅니다.

# Unload (의존성 역순)
sudo modprobe -r nvidia_drm
sudo modprobe -r nvidia_modeset
sudo modprobe -r nvidia_uvm
sudo modprobe -r nvidia

# Load (역순)
sudo modprobe nvidia
sudo modprobe nvidia_uvm
sudo modprobe nvidia_modeset
sudo modprobe nvidia_drm

nvidia-smi

여전히 실패하면 가상머신 내부에서 재부팅합니다 (포털에서 중지하는 것이 아닌 OS 재부팅 — NVMe 캐시 데이터가 보존됩니다).

sudo reboot

ECI 기본 이미지의 드라이버 버전을 유지하는 것을 권장합니다. 드라이버를 임의로 업그레이드하지 마세요. 이미 깨졌고 위 절차로도 복구가 안 되면 가상머신을 ECI 기본 이미지로 재생성하는 것이 가장 빠른 해결 방법입니다.


PyTorch CUDA 오류는 별도 FAQ를 참고하세요