NVIDIA NVML Driver/bibliotheekversie komt niet overeen

Als ik nvidia-smiuitvoer, 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-smiuitvoeren, met het volgende resultaat:

nvidia-smi-resultaat

Hierna heb ik cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.debgedownload 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/versionkrijg 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 nvidiamod 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 locatete 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:

  1. dpkg -l | grep nvidia(kijk naar het pakket nvidia-utils-xxx)
    versie), en
  2. cat /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 mismatchvan 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 rebootme 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 devicesom te vermelden wat er beschikbaar is

En ik kies sudo apt install nvidia-driver-430

Daarna gaf nvidia-smide 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-390te 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.67en 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:

  1. systemctl isolate multi-user.target

  2. modprobe -r nvidia-drm

  3. Nvidia-stuurprogramma opnieuw installeren: chmod +x NVIDIA-Linux-x86_64–410.57.run

  4. 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:

img

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-440niet kon compileren (controleer /var/crash/) hoewel aptgeen waarschuwingen heeft geplaatst. Voor mij was de oplossing om apt purge nvidia-*, ccweer in te stellen om gccte 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.100en was de driverversie 460.32.03. Mijn stuurprogramma is bijgewerkt door sudo apt install caffe-cudaen 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-440gebruikt, maar het installeerde 450.102, ik weet niet waarom het een andere versie heeft geïnstalleerd en nvidia-smiis 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.03werd automatisch verwijderd door sudo apt install nvidia-driver-440

uit te voeren

LEAVE A REPLY

Please enter your comment!
Please enter your name here

1 + nine =

Other episodes