Po uruchomieniu nvidia-smi
pojawia się następujący komunikat:
Failed to initialize NVML: Driver/library version mismatch
Godzinę temu otrzymałem ten sam komunikat i odinstalowałem bibliotekę cuda i udało mi się uruchomić nvidia-smi
, uzyskując następujący wynik:
Następnie pobrałem cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
z oficjalnej strony NVIDIA, a następnie po prostu:
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
Teraz mam zainstalowaną Cudę, ale pojawia się wspomniany błąd niedopasowania.
Niektóre potencjalnie przydatne informacje:
Z biegiem cat /proc/driver/nvidia/version
dostaję:
NVRM version: NVIDIA UNIX x86_64 Kernel Module 378.13 Tue Feb 7 20:10:06 PST 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
Używam Ubuntu 16.04.2 LTS.
Wydanie jądra jest: 4.4.0-66-ogólne.
Dzięki!
Odpowiedzi:
Niespodzianka niespodzianka, ponowne uruchomienie rozwiązało problem (myślałem, że już tego próbowałem).
Rozwiązanie wymienione w komentarzach Robert Crovella może być także przydatne dla kogoś innego, ponieważ jest bardzo podobne do tego, co zrobiłem, aby rozwiązać problem za pierwszym razem.
źródło
/var/log/apt/history.log
Ubuntu ujawniło, że system automatycznie zaktualizował libcuda, co prawdopodobnie wymagało ponownego uruchomienia, aby nadal działać poprawnie. Od tego czasu wyłączyłem te aktualizacje w nadziei, że nie zobaczę ich ponownie.nvidia-390
). Zobacz moją odpowiedź poniżejsudo reboot now
a inne nie.Jak powiedział @etal, ponowne uruchomienie może rozwiązać ten problem, ale myślę, że procedura bez ponownego uruchomienia pomoże.
W przypadku chińskiego sprawdź mój blog -> 中文 版
Komunikat o błędzie
powiedz nam, że moduł jądra sterownika Nvidia (kmod) ma niewłaściwą wersję, więc powinniśmy zwolnić ten sterownik, a następnie załadować poprawną wersję kmod
Jak to zrobić ?
Po pierwsze powinniśmy wiedzieć, które sterowniki są załadowane.
możesz dostać
naszym ostatecznym celem jest rozładowanie
nvidia
mod, więc powinniśmy rozładować moduł zależy odnvidia
następnie rozładuj
nvidia
Rozwiązywanie problemów
jeśli pojawi się błąd typu „
rmmod: ERROR: Module nvidia is in use
co”, który wskazuje, że moduł jądra jest w użyciu, powinieneś zakończyć proces korzystający z kmod:a następnie zabij te procesy, a następnie kontynuuj rozładowywanie kmods
Test
potwierdź, że pomyślnie rozładowałeś te kmody
nic nie dostaniesz, a następnie potwierdź, że możesz załadować odpowiedni sterownik
powinieneś uzyskać poprawny wynik
źródło
Miałem więc ten problem, żadne inne środki nie działały. Komunikat o błędzie był nieprzejrzysty, ale kluczem było sprawdzenie dmesg:
Jednak całkowicie usunąłem wersję 384 i usunąłem wszystkie pozostałe sterowniki jądra
nvidia-384*
. Ale nawet po ponownym uruchomieniu wciąż otrzymywałem ten komunikat. Widzenie tego oznaczało, że jądro wciąż było kompilowane do referencji 384, ale znajdowało tylko 410. Więc ponownie skompilowałem swoje jądro:A potem zadziałało.
Po usunięciu 384 nadal miałem 384 pliki w: /var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic/x86_64/module /lib/modules/4.13.0-43-generic/ jądro / sterowniki
Zalecam używanie
locate
polecenia (domyślnie nie instalowane) zamiast przeszukiwania systemu plików za każdym razem.źródło
locate nvidia-smi
. Użyłem polecenia, aby dowiedzieć się, że został zainstalowany inny sterownik.uname -r
Nie pomógł mi.dmesg
wyjście:NVRM: API mismatch: the client has the version 418.67, but NVRM: this kernel module has the version 430.26. Please NVRM: make sure that this kernel module and all NVIDIA driver NVRM: components have the same version.
Dwie najlepsze odpowiedzi nie mogą rozwiązać mojego problemu. Znalazłem rozwiązanie na oficjalnym forum Nvidii, które rozwiązało mój problem. Poniższe informacje o błędzie mogą powodować, instalując dwie różne wersje sterownika różnymi metodami. Na przykład zainstaluj sterownik Nvidia przez apt i oficjalnego instalatora.
Aby rozwiązać ten problem, wystarczy wykonać jedno z dwóch poniższych poleceń.
źródło
Wystąpił błąd
failed to initialize NVML: Driver/Library version mismatch
z mojego wskaźnika temperatury NVIDIA-GPU. I nvidia-smi nie wydrukowała żadnych informacji. Próbowałem sprawdzić, czy w moim Ubuntu są zainstalowane inne wersje sterownika NVIDIA. Ale właśnie znalazłem nvidia-driver-390. W końcureboot
pomogło mi rozwiązać problem.źródło
Zdarzyło mi się to również na Ubuntu 16.04 przy użyciu
nvidia-348
pakietu (najnowsza wersja NVIDIA na Ubuntu 16.04).Jednak mogłem rozwiązać problem, instalując
nvidia-390
za pomocą zastrzeżonego PPA Drivers GPU Drivers .Tak więc rozwiązaniem opisanego problemu w Ubuntu 16.04 jest:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390
Uwaga: ten przewodnik zakłada czystą instalację Ubuntu. Jeśli masz już zainstalowane sterowniki, konieczne może być ponowne uruchomienie komputera, aby ponownie załadować wszystkie moduły jądra.
źródło
Miałem też problem. (Używam Ubuntu 18.04)
Co ja zrobiłem:
dpkg -l | grep -i nvidia
Następnie
sudo apt-get remove --purge nvidia-381
(i każdą zduplikowaną wersję, w moim przypadku miałem 381, 384 i 387)Następnie,
sudo ubuntu-drivers devices
aby wyświetlić listę dostępnychI wybieram
sudo apt install nvidia-driver-430
Następnie
nvidia-smi
podał poprawne dane wyjściowe (nie trzeba restartować). Ale przypuszczam, że możesz ponownie uruchomić komputer w razie wątpliwości.Śledziłem również tę instalację, aby ponownie zainstalować cuda + cudnn.
źródło
Ten problem wystąpił po normalnej aktualizacji jądra na komputerze CentOS. Ponieważ wszystkie sterowniki i biblioteki CUDA i nVidia zostały zainstalowane za pośrednictwem repozytoriów YUM, udało mi się rozwiązać problemy, wykonując następujące czynności:
Sprawiło to, że moje jądro i sterownik nVidia są spójne. Uważam, że samo ponowne uruchomienie może spowodować załadowanie niewłaściwej wersji modułu jądra.
źródło
Muszę zrestartować jądra i usunąć wszystkie pakiety, które wcześniej zainstalowałem (podczas pierwszej instalacji), pamiętaj o usunięciu wszystkich pakietów, nawet po usunięciu pakietów poleceniem poniżej
pakiety takie jak „libtinfo6: i386” nie zostaną usunięte
Używam Ubuntu 20.04 i Nvidia-driver-440 do tego, że musisz usunąć wszystkie pakiety pokazane poniżej
Lista wszystkich pakietów, które należy usunąć:
jak pokazano na obrazku, upewnij się, że instalowany pakiet ma prawidłowy rozmiar, czyli 207 Mb dla Nvidia-driver-440, jeśli jest mniejszy, oznacza to, że nie usunąłeś wszystkich pakietów.
źródło
Ponownie zainstalowałem sterownik nvidia: uruchom następujące polecenia w
root
trybie:systemctl isolate multi-user.target
modprobe -r nvidia-drm
Ponownie zainstaluj sterownik Nvidia:
chmod +x NVIDIA-Linux-x86_64–410.57.run
systemctl start graphical.target
i na koniec sprawdź
nvidia-smi
Dzięki: Jak zainstalować sterowniki Nvidia i CUDA-10.0 dla procesora graficznego RTX 2080 Ti na Ubuntu-16.04 / 18.04
Jak zwolnić moduł jądra „NVIDIA-DRM”?
źródło
Zaakceptowałem kontener do obrazu dokera. Następnie odtwarzam inny kontener przy użyciu tego obrazu dokera i problem zniknął.
źródło
Te odpowiedzi nie działały dla mnie:
https://stackoverflow.com/a/43023000/1179925
https://stackoverflow.com/a/45319156/1179925
https://stackoverflow.com/a/54349675/1179925
dmesg
Odinstaluj stary sterownik
418.67
i zainstaluj nowy sterownik430.26
(pobierzNVIDIA-Linux-x86_64-430.26.run
):cat /proc/driver/nvidia/version
źródło
restart. Jeśli problem nadal występuje:
za cent / rhel
następnie
źródło
W moim przypadku zainstalowałem sterownik nvidia, a następnie cuda. Odkryłem, że można to naprawić, instalując po prostu cuda. https://developer.nvidia.com/cuda-toolkit
źródło