증상
nvidia-smi
Shell
복사
Failed to initialize NVML: Driver/library version mismatch
NVML library version: 550.107
Shell
복사
원인
리눅스의 unattended-upgrade가 패키지를 자동 업데이트하면서 driver와 library의 버전 차이로 발생하는 에러.
•
커널 로그 확인
>>> sudo dmesg | grep -i nvrm
Shell
복사
[    4.035082] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  550.90.07  Fri May 31 09:35:42 UTC 2024
[3368562.860885] NVRM: API mismatch: the client has the version 550.107.02, but
NVRM: this kernel module has the version 550.90.07.  Please
NVRM: make sure that this kernel module and all NVIDIA driver
Shell
복사
해결방법 #1 - 재부팅
•
해결!
해결방법 #2 - nvidia 모듈 다시 로드하기
재부팅이 어려울 때 이를 시도해본다.
1.
로드되어있는 nvidia drive kernel 확인
lsmod | grep nvidia
Shell
복사
nvidia_uvm           4669440  0
nvidia_drm             94208  0
nvidia_modeset       1343488  1 nvidia_drm
nvidia              54206464  2 nvidia_uvm,nvidia_modeset
drm_kms_helper        311296  5 drm_vram_helper,ast,nvidia_drm
drm                   622592  8 drm_kms_helper,drm_vram_helper,ast,nvidia,drm_ttm_helper,nvidia_drm,ttm
Shell
복사
2.
커널들 unload
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
sudo rmmod nvidia
Shell
복사
# 만약 rmmod: ERROR가 뜬다면 -
# nvidia 관련 process kill
sudo lsof /dev/nvidia*
Shell
복사
•
Unload 확인하기
lsmod | grep nvidia
# 아무것도 출력되지 않으면 정상
Shell
복사
3.
다시 nvidia-smi 실행하기
nvidia-smi
Shell
복사
Sun Sep 15 07:13:24 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.107.02             Driver Version: 550.107.02     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA RTX A6000               Off |   00000000:01:00.0 Off |                  Off |
| 30%   32C    P0             72W /  300W |       1MiB /  49140MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   1  NVIDIA RTX A6000               Off |   00000000:2D:00.0 Off |                  Off |
| 30%   40C    P0             71W /  300W |       1MiB /  49140MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   2  NVIDIA RTX A6000               Off |   00000000:41:00.0 Off |                  Off |
| 30%   33C    P0             77W /  300W |       1MiB /  49140MiB |      2%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
|   3  NVIDIA RTX A6000               Off |   00000000:61:00.0 Off |                  Off |
| 30%   35C    P0             77W /  300W |       2MiB /  49140MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
Shell
복사
해결방법 #3 - 예방하기
•
이런 상황을 방지하기 위해 unattended-upgrade을 막아둔다.
•
linux의 security update를 위해 자동 업데이트 되는 것으로 nvidia 관련한 upgrade만 막아둔다.
/etc/apt/apt.conf.d/50unattended-upgrades 파일 아래에 Blacklist 추가
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Shell
복사
Unattended-Upgrade::Package-Blacklist {
  "nvidia-*.";
}
Shell
복사