본문 바로가기

Tect.tip/Linux

NVML: Driver/library version mismatch 해결방안

문제 상황

이 문제는 nvidia driver kernel module 이 잘못 로딩되어 있어서 발생하는 문제로 nvidia driver kernel module 을 언로딩 & 로딩 하면 된다.

$ docker run -it --rm --gpus all alpine /bin/sh
docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]].

해결 방안

nvidia driver kernel module 을 언로딩 하는 방법

현재 로딩되어 있는 nvidia driver kernel 을 확인

$ lsmod | grep nvidia

로딩되어 있는 nvidia driver kernel 을 언로딩 한다.

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

rmmod: ERROR: Module nvidia is in use 메세지가 나타난다면 아래 명령어로 프로세스를 kill 한다.

nvidia 사용중인 프로세스 확인

$ sudo lsof /dev/nvidia*

해당 process 종료하기

$ sudo kill -9 PID

rmmod: ERROR: Module nvidia_drm is in use 경우

$ systemctl isolate multi-user.target
$ sudo modprobe -r nvidia-drm
$ systemctl start graphical.target

Reboot 을 한다. (Reboot 안해도 되는 경우도 있음)

nvidia driver kernel 이 정상적으로 로딩 되고 문제가 해결 되었는지 nvidia-smi 명령어로 확인하다.

$ nvidia-smi