Computer/Ubuntu, Linux

NVIDIA NVML Driver/library version mismatch 해결방법

매직블럭 2018. 5. 31. 11:17
Failed to initialize NVML: Driver/library version mismatch

GPU 사용하던 도중 위와같은 문제가 발생 할 경우 해결 방법



nvidia driver를 unload 하고 관련 모듈을 삭제하면 된다.


아래 명령어로 nvidia 관련 사용중인 드라이버 리스트를 불러온다


$ lsmod | grep nvidia

nvidia_uvm            634880  8
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              12312576  86 nvidia_modeset,nvidia_uvm


nvidia 드라이버 unload를 위하여 nvidia 항목 오른쪽에 있는 종속성 항목을 unload 해준다.

이 경우는 nvidia_modeset, nvidia_uvm 이 되고 nvidia_modeset에서 nvidia_drm까지 물고있으니 셋다 unload


$ sudo rmmod nvidia_drm

$ sudo rmmod nvidia_modeset

$ sudo rmmod nvidia_uvm


종속성 항목 모두 unload 했으면 nvidia도 unload


$ sudo rmmod nvidia

( $ sudo rmmod -r nvidia 로 의존관계 모듈 일괄 삭제 가능)


이 과정에서 "rmmod: ERROR: Module nvidia is in use" 와 같은 에러를 만나면 아래 명령어로 관련 프로세스 kill.


$ sudo lsof /dev/nvidia*


여기 까지 했으면 과정은 끝.


아래 명령어로 확인했을때 아무것도 안뜨면 작업이 완료 된 것이다.


$ lsmod | grep nvidia



이후 nvidia-smi 도 정상 동작 가능.