Ubuntu에서 nvidia-smi 실행시 Failed to initialize NVML: Driver/library version mismatch 오류 해결하기

2023. 7. 30. 19:42개발 일지/인공지능

Pytorch를 사용할 때, torch.cuda.is_available()가 False 가 나오면, GPU 연결에 문제가 생겼을 가능성이 높다.

import torch
import torch.nn.functional as F

if torch.cuda.is_available():
    device = 'cuda'
else:
    device = 'cpu'

 

터미널에 nvidia-smi 를 쳐서 확인해보자.

$ nvidia-smi
Failed to initialize NVML: Driver/library version mismatch

확인해보니, Failed to initialize NVML: Driver/library version mismatch 오류가 발생했다.

재부팅하는 방법도 있지만, 재부팅을 하지 않고서 해결할 수 있는 방법이 있다.

 

아래의 내용은 nvidia를 unload 하고 다시 nvidia-smi 를 쳐서 다시 load 하는 방법이다.

 

아래처럼 실행하면 해결된다.

sudo rmmod nvidia_drm 
sudo rmmod nvidia_modeset 
sudo rmmod nvidia_uvm 
sudo rmmod nvidia

위의 명령어를 실행하다가

rmmod: ERROR: Module nvidia_drm is in use 라는 등의 오류가 발생하면

아래와 같은 방법으로 해결할 수 있다. 

systemctl isolate multi-user.target

# 위의 명령어를 실행하고 아래 명령어를 다시 실행
sudo rmmod nvidia_drm 
sudo rmmod nvidia_modeset 
sudo rmmod nvidia_uvm 
sudo rmmod nvidia

 

전부 unload 되었는 지 확인해보자.

lsmod | grep nvidia

이렇게 쳤을 때, 아무것도 안나와야한다.

 

이제 다시 nvidia-smi 를 실행하고

nvidia-smi

 

Torch에 정상적으로 로드가 된다.