실행 명령어

nvidia-smi

 

nvidia-smi 명령어를 입력했을 때 Failed to initialize NVML: Driver/library version mismatch 에러가 뜨는 경우가 있다.

 

오류 메세지

Failed to initialize NVML: Driver/library version mismatch
NVML library version: 535.129

 

주로 NVIDIA의 GPU와 관련된 드라이버 또는 소프트웨어 라이브러리의 버전이 서로 호환되지 않을 때 발생한다.

 

NVML(NVIDIA Management Library)은 NVIDIA GPU의 상태를 모니터링하고 관리하는 데 사용되는 소프트웨어 라이브러리다.

 

이 오류는 다음과 같은 상황에서 발생할 수 있다.

 

  1. 드라이버 업데이트 불완전: NVIDIA 드라이버를 업데이트한 후 시스템을 재부팅하지 않았거나 업데이트 과정에서 문제가 발생했을 때 이 오류가 발생할 수 있다.
  2. 커널 모듈 버전 불일치: 리눅스에서는 NVIDIA 드라이버가 커널 모듈로 설치되는데, 만약 커널이 업데이트되고 NVIDIA 드라이버가 그에 맞게 업데이트되지 않으면 버전 불일치가 발생할 수 있다.
  3. 드라이버와 CUDA 또는 다른 소프트웨어 간의 호환성 문제: 특정 버전의 드라이버는 특정 버전의 CUDA와 호환되도록 설계되었다. 드라이버 버전과 CUDA 버전(또는 사용 중인 다른 NVIDIA 소프트웨어)이 서로 호환되지 않으면 이 오류가 발생할 수 있다.

 

 

해결 방법

아래 명령어를 입력하여 시스템에 로드된 커널 모듈들 중에서 NVIDIA 관련 모듈들만 출력한다.

lsmod | grep nvidia

 

 

해당 명령어 실행 후 아래 결과에 나오는 모듈 위에서부터 순서대로 삭제

nvidia_uvm           1540096  0
nvidia_drm             77824  8
nvidia_modeset       1302528  3 nvidia_drm
nvidia              56631296  351 nvidia_uvm,nvidia_modeset

 

위와 같은 경우, 아래와 같이 실행

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

 

다시 아래 명령어 실행 후 아무것도 나오지 않으면 성공

lsmod | grep nvidia

 

다시 nvidia-smi 명령어를 실행하면 정상적으로 실행된다.

nvidia-smi

 

 

+ rmmod: ERROR: Module nvidia_drm is in use 에러 발생 시

sudo lsof /dev/nvidia*

 

위 명령어 실행 후 PID 확인

COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
Xorg    1406 root  mem    CHR 195,255           750 /dev/nvidiactl
Xorg    1406 root  mem    CHR   195,3           754 /dev/nvidia3
Xorg    1406 root  mem    CHR   195,2           753 /dev/nvidia2
Xorg    1406 root  mem    CHR   195,1           752 /dev/nvidia1
Xorg    1406 root  mem    CHR   195,0           751 /dev/nvidia0

 

해당 프로세스 kill

sudo kill -9 1406