Als ik nvidia-smi
uitvoer, krijg ik het volgende bericht:
Failed to initialize NVML: Driver/library version mismatch
Een uur geleden ontving ik hetzelfde bericht en verwijderde ik mijn cuda-bibliotheek en kon ik nvidia-smi
uitvoeren, met het volgende resultaat:
Hierna heb ik cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
gedownload van de officiële NVIDIA-paginaen dan gewoon:
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}}
Nu heb ik cuda geïnstalleerd, maar ik krijg de genoemde mismatch-fout.
Enkele potentieel nuttige informatie:
Met cat /proc/driver/nvidia/version
krijg ik:
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)
Ik gebruik Ubuntu 16.04.2 LTS.
Kernelrelease is: 4.4.0-66-generiek.
Bedankt!
Antwoord 1, autoriteit 100%
Verrassing, opnieuw opstarten loste het probleem op (ik dacht dat ik dat al had geprobeerd).
De oplossing die Robert Crovella in de opmerkingen noemde, kan ook nuttig zijn voor iemand anders, omdat het vrij gelijkaardig is aan wat ik deed om het probleem op te lossen de eerste keer dat ik het had.
Antwoord 2, autoriteit 65%
Zoals @etal al zei, kan opnieuw opstarten dit probleem oplossen, maar ik denk dat een procedure zonder opnieuw opstarten zal helpen.
Voor Chinees, check mijn blog -> ???
De foutmelding
NVML: versie van stuurprogramma/bibliotheek komt niet overeen
Vertel ons dat de kernelmodule van het Nvidia-stuurprogramma (kmod) een verkeerde versie heeft, dus dat we dit stuurprogramma moeten verwijderen en vervolgens de juiste versie van kmod moeten laden
Hoe doe je dat?
Eerst moeten we weten welke stuurprogramma’s zijn geladen.
lsmod | grep nvidia
misschien krijg je
nvidia_uvm 634880 8
nvidia_drm 53248 0
nvidia_modeset 790528 1 nvidia_drm
nvidia 12312576 86 nvidia_modeset,nvidia_uvm
ons uiteindelijke doel is om nvidia
mod te verwijderen, dus we moeten de module uitladen afhankelijk van nvidia
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
ontlaad vervolgens nvidia
sudo rmmod nvidia
Problemen oplossen
als je een foutmelding krijgt zoals rmmod: ERROR: Module nvidia is in use
, wat aangeeft dat de kernelmodule in gebruik is, moet je het proces beëindigen dat de kmod gebruikt:
sudo lsof /dev/nvidia*
en stop dan dat proces, ga dan verder met het ontladen van de kmods
Test
bevestig dat je die kmods succesvol hebt verwijderd
lsmod | grep nvidia
u zou niets moeten krijgen, bevestig dan dat u de juiste driver kunt laden
nvidia-smi
je zou de juiste output moeten krijgen
Antwoord 3, autoriteit 5%
Dus ik had dit probleem, geen van de andere oplossingen werkte. De foutmelding was ondoorzichtig, maar het controleren van dmesg was de sleutel:
[ 10.118255] NVRM: API mismatch: the client has the version 410.79, but
NVRM: this kernel module has the version 384.130. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
Ik had echter de 384-versie volledig verwijderd en alle resterende kernelstuurprogramma’s nvidia-384*
verwijderd. Maar zelfs na opnieuw opstarten kreeg ik dit nog steeds. Toen ik dit zag, betekende dit dat de kernel nog steeds was gecompileerd met referentie 384, maar alleen 410 vond. Dus ik heb mijn kernel opnieuw gecompileerd:
# uname -a # find the kernel it's using
Linux blah 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# update-initramfs -c -k 4.13.0-43-generic #recompile it
# reboot
En toen werkte het.
Na het verwijderen van 384 had ik nog steeds 384 bestanden in:
/var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic/x86_64/module
/lib/modules/4.13.0-43-generic/kernel/drivers
Ik raad aan om de opdracht locate
te gebruiken (standaard niet geïnstalleerd) in plaats van elke keer in het bestandssysteem te zoeken.
Antwoord 4, autoriteit 3%
De top-2 antwoorden kunnen mijn probleem niet oplossen. Ik vond een oplossing op het officiële Nvidia-forum en loste mijn probleem op.
De onderstaande foutinformatie kan worden veroorzaakt door twee verschillende versies van het stuurprogramma op verschillende manieren te installeren. Installeer bijvoorbeeld het Nvidia-stuurprogramma door de apt en het officiële installatieprogramma.
Kan NVML niet initialiseren: versie van stuurprogramma/bibliotheek komt niet overeen
Om dit probleem op te lossen, hoeft u slechts een van de volgende twee opdrachten uit te voeren.
sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
Antwoord 5, autoriteit 2%
Voor degenen die echtwillen weten waarom de niet-overeenkomende versieis opgetreden en hoe ze kunnen voorkomen dat dit opnieuw gebeurt. Dit komt doordat de versies van nvidia-*
op deze locaties anders zijn:
dpkg -l | grep nvidia
(kijk naar het pakketnvidia-utils-xxx
)
versie), encat /proc/driver/nvidia/version
(kijk naar de versie van Kernel
Module,460.56
– bijvoorbeeld)
Het herstarten zou moeten werken, maar u kunt de automatische update van dit pakket misschien verbieden door de /etc/apt/sources.list.d/
bestanden OF( Ik heb zojuist een eenvoudigere manier gevonden om het pakket vast te houden) door uitvoeren van dit commando apt-mark hold nvidia-utils-version_number
.
Proost.
P/S: sommige inhoud is geïnspireerd op dit(de oorspronkelijke instructie was in Chinees, dus ik verwees in plaats daarvan naar de vertaalde versie)
Antwoord 6, autoriteit 2%
Ik kreeg de fout failed to initialize NVML: Driver/Library version mismatch
van mijn nvidia-gpu-temperature-indicator. En nvidia-smi kon geen informatie afdrukken. Ik heb geprobeerd te achterhalen of er andere versies van het nvidia-stuurprogramma in mijn ubuntu waren geïnstalleerd. Maar ik heb net nvidia-driver-390 gevonden. Uiteindelijk heeft reboot
me geholpen het probleem op te lossen.
Antwoord 7, autoriteit 2%
sudo reboot
Herstarten loste het voor mij op Ubuntu 18.04 op met twee NVIDIA GeForce GTX 1080 Ti.
Antwoord 8
Heb het probleem ook gehad. (Ik gebruik ubuntu 18.04)
Wat ik deed:
dpkg -l | grep -i nvidia
Dan
sudo apt-get remove --purge nvidia-381
(en elke dubbele versie, in mijn geval had ik 381, 384 en 387)
Vervolgens sudo ubuntu-drivers devices
om te vermelden wat er beschikbaar is
En ik kies sudo apt install nvidia-driver-430
Daarna gaf nvidia-smi
de juiste uitvoer (opnieuw opstarten is niet nodig). Maar ik neem aan dat je bij twijfel opnieuw kunt opstarten.
Ik heb ook deze installatiegevolgd om cuda opnieuw te installeren +cudnn.
Antwoord 9
opnieuw opstarten.
Als het probleem nog steeds bestaat:
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
nvidia-smi
voor cent/rhel
cd /boot
mv initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -vf initramfs-$(uname -r).img $(uname -r)
dan
reboot
voor debian/ubuntu
update-initramfs -u
Als het probleem blijft bestaan
apt install -y dkms && dkms install -m nvidia -v 440.82
Wijzig 440.82 in uw huidige versie.
tip: download de Nvidia-stuurprogrammaversie:
ls /usr/src
u vindt de Nvidia driver dir zoals nvidia-440.82
u kunt ook alle Nvidia-pkgs verwijderen en het stuurprogramma opnieuw installeren
apt purge nvidia*
apt purge *cuda*
#check
apt list -i |grep nvidia
apt list -i |grep cuda
Antwoord 10
Als je onlangs een update hebt uitgevoerd, kan een herstart dit probleem mogelijk oplossen.
Antwoord 11
Dit is mij ook overkomen op Ubuntu 16.04 met het pakket nvidia-348
(laatste nvidia-versie op Ubuntu 16.04).
Ik zou het probleem echter kunnen oplossen door nvidia-390
te installeren via het Proprietary GPU Drivers PPA.
Dus een oplossing voor het beschreven probleem op Ubuntu 16.04 is dit:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390
Opmerking:Deze handleiding gaat uit van een schone Ubuntu-installatie. Als je eerdere stuurprogramma’s hebt geïnstalleerd, kan een herstart nodig zijn om alle kernelmodules opnieuw te laden.
Antwoord 12
Meestal opnieuw opstarten zou het probleem op Ubuntu 18.04 oplossen.
De fout Kan NVML niet initialiseren: stuurprogramma/bibliotheekversie komen niet overeen? betekent over het algemeen dat het CUDA-stuurprogramma nog steeds een oudere release uitvoert die niet compatibel is met de CUDA-toolkitversie die momenteel in gebruik is. Het opnieuw opstarten van de rekenknooppunten lost dit probleem over het algemeen op.
Antwoord 13
Deze antwoorden werkten niet voor mij:
https://stackoverflow.com/a/43023000/1179925
https://stackoverflow.com/a/45319156/1179925
https://stackoverflow.com/a/54349675/1179925
dmesg
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.
Verwijder het oude stuurprogramma 418.67
en installeer het nieuwe stuurprogramma 430.26
(download NVIDIA-Linux-x86_64-430.26.run
):
sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
chmod +x NVIDIA-Linux-x86_64-430.26.run
sudo ./NVIDIA-Linux-x86_64-430.26.run
[ignore abort]
cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 430.26 Tue Jun 4 17:40:52 CDT 2019
GCC version: gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)
Antwoord 14
Ik heb dit probleem ondervonden na een normale kernel-update op een CentOS-machine. Aangezien alle CUDA- en nVidia-stuurprogramma’s en -bibliotheken zijn geïnstalleerd via YUM-repositories, heb ik de problemen met de volgende stappen kunnen oplossen:
sudo yum remove nvidia-driver-*
sudo reboot
sudo yum install nvidia-driver-cuda nvidia-modprobe
sudo modprobe nvidia # or just reboot
Het zorgde ervoor dat mijn kernel en mijn nVidia-stuurprogramma consistent zijn. Ik denk dat gewoon opnieuw opstarten ertoe kan leiden dat de verkeerde versie van de kernelmodule wordt geladen.
Antwoord 15
sudo reboot
Herstarten loste het voor mij op Ubuntu 18.04 op met twee NVIDIA GeForce GTX 1080 Ti.
Antwoord 16
Ik had het nvidia-stuurprogramma opnieuw geïnstalleerd: voer deze opdrachten uit in de modus root
:
-
systemctl isolate multi-user.target
-
modprobe -r nvidia-drm
-
Nvidia-stuurprogramma opnieuw installeren:
chmod +x NVIDIA-Linux-x86_64–410.57.run
-
systemctl start graphical.target
en controleer ten slotte nvidia-smi
Met dank aan:
Nvidia-stuurprogramma’s en CUDA-10.0 voor RTX 2080 Ti GPU installeren op Ubuntu-16.04/18.04
Hoe verwijder ik de kernelmodule ‘nvidia-drm’?
Antwoord 17
Ik heb de container vastgelegd in een docker-image. Daarna maak ik een andere container aan met deze docker-image en het probleem was verdwenen.
Antwoord 18
Ik moet mijn kernels opnieuw opstarten en alle pakketten verwijderen die ik eerder heb geïnstalleerd (tijdens de eerste installatie), zorg ervoor dat je alle pakketten verwijdert, zelfs nadat ik pakketten heb verwijderd met het onderstaande commando
sudo apt-get –purge remove “nvidia“
de pakketten zoals “libtinfo6:i386” worden niet verwijderd
Ik gebruik Ubuntu 20.04 en Nvidia-driver-440 daarvoor moet je alle onderstaande pakketten verwijderen
Lijst van alle pakketten die moeten worden verwijderd:
Zoals in de afbeelding wordt getoond, moet u ervoor zorgen dat het pakket dat u installeert de juiste grootte heeft, namelijk 207 Mb voor Nvidia-driver-440, als het minder is, betekent dit dat u niet alle pakketten hebt verwijderd.
p>
Antwoord 19
Voor de volledigheid kwam ik dit probleem ook tegen. In mijn geval bleek dat omdat ik Clang als mijn standaardcompiler had ingesteld (met behulp van update-alternatives
), nvidia-driver-440
niet kon compileren (controleer /var/crash/
) hoewel apt
geen waarschuwingen heeft geplaatst. Voor mij was de oplossing om apt purge nvidia-*
, cc
weer in te stellen om gcc
te gebruiken, opnieuw op te starten en nvidia-driver-440
.
Antwoord 20
Eerst installeerde ik het Nvidia-stuurprogramma.
Vervolgens installeerde ik cuda.
Toen ik de foutmelding “Driver/library version mismatch” kreeg, maar ik de cuda-versie kon zien, heb ik de Nvidia-driver verwijderd en opnieuw geïnstalleerd.
Toen werkte het correct.
Antwoord 21
Er is een eenvoudigere oplossing die voor mij werkte. Probeer op Fedora 33 het volgende:
rpm -qa | grep -i nvidia | grep f32
Je zou twee pakketten moeten hebben van de vorige versie van Fedora voor opengl. Verwijder deze en start opnieuw op.
Het verwijderen en opnieuw installeren van de volledige nvidia-pakketset is overdreven.
Antwoord 22
Het werkt niet voor mij door het stuurprogramma opnieuw op te starten of te verwijderen.
Ik heb het probleem opgelost door mijn nvidia-stuurprogramma 440.33.01 bij te werken naar 450.80.2.
sudo apt-get install nvidia-driver-450
sudo reboot
Ik gebruik Ubuntu 20.04 LTS, wat een externe server is
Antwoord 23
Ik had hetzelfde probleem en ik post hier mijn oplossing.
In mijn geval was de NVRM-versie 440.100
en was de driverversie 460.32.03
. Mijn stuurprogramma is bijgewerkt door sudo apt install caffe-cuda
en ik merkte het toen niet, maar ik controleerde het vanuit /var/log/apt/history.log
.
Door mijn NVRM-versie te volgen, heb ik zojuist sudo apt install nvidia-driver-440
gebruikt, maar het installeerde 450.102, ik weet niet waarom het een andere versie heeft geïnstalleerd en nvidia-smi
is met 450.102.04
.
Hoe dan ook, na het opnieuw opstarten van mijn pc werkt alles nu goed. Na het opnieuw installeren van het stuurprogramma werkt mijn cuda nog steeds prima.
Ik heb niets verwijderd/opgeschoondmet betrekking tot het nvidia-stuurprogramma. Versie 460.32.03
werd automatisch verwijderd door sudo apt install nvidia-driver-440
uit te voeren