nvidia-smi 실행 시, Driver/library version mismatch 오류
nvidia-driver 설치된 상태에서 사용 중, 어느 순간 nvidia-smi
실행 시,
Failed to initialize NVML: Driver/library version mismatch 오류 발생할 때
상황
- nvidia gpu가 장착된 ubuntu 서버
- nvidia-driver 설치 후, gpu 사용
-
nvidia-smi 명령어 수행 시, Failed to initialize NVML: Driver/library version mismatch 오류 발생하며 동작하지 않음
원인
문제 확인
1
dmesge
- NVRM: API mismatch … 오류 메시지
- 클라이언트의 버전은 470.103.01인데, 커널 모듈 버전은 470.86
-
리눅스의 unattended-upgrade가 보안 관련 패키지를 자동으로 업데이트하여 버전 간 차이가 발생
unattended-upgrade 수행 목록 확인
1
cat /var/log/apt/history.log
1
view /var/log/unattended-upgrades/unattended-upgrades.log.1.gz
- log 파일의 내용을 보면 2022-02-08에 libnvidia-* 관련 패키지들이 자동으로 업데이트 되었다.
unattended-upgrades.log 에서 관련 내용을 찾을 수 없으면, 이전 log 파일(ex, log.1.gz 등을 확인해봄)
해결방안
unattended-upgrade를 방지하는 방법
- unattended-upgrade의 대상 패키지에서 nvidia 관련 패키지를 제외
-
/etc/apt/apt.conf.d/50unattended-upgrades
파일 수정
1 2 3 4 5 6
# ubuntu 20.04 기준 # /etc/apt/apt.conf.d/50unattended-upgrades 파일에 아래 내용 추가 Unattended-Upgrade::Package-Blacklist { "nvidia-*."; }
-
nvidia module 삭제(재시작)
- 이미 자동으로 업데이트 되어, 설치가 된 경우, 기존 모듈을 삭제하면 문제를 해결할 수 있다.
1 2
# nvidia 커널 모듈 확인 lsmod |grep nvidia
1 2 3 4 5
# 출력된 모듈 제거 rmmod $모듈명 # ex) rmmod nvidia_uvm
-
아래와 같이 ERROR: Module nvidia_drm is in use 오류가 발생하면 관련 프로세스를 종료한다.
1 2 3 4 5 6
# nvidia 사용 프로세스 확인 및 종료 lsof /dev/nvidia* kill -9 $PID # ex) kill -9 449143
- 모듈이 자동으로 재업로드되어
nvidia-smi
명령어가 정상 작동함