Несоответствие версии драйвера/библиотеки NVIDIA NVML

Когда я запускаю nvidia-smi, я получаю следующее сообщение:

Failed to initialize NVML: Driver/library version mismatch

Час назад я получил то же сообщение и удалил свою библиотеку cuda, и я смог запустить nvidia-smi, получив следующий результат:

nvidia-smi-result

После этого я загрузил cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb из официальную страницу NVIDIA, а затем просто:

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}}

Теперь у меня установлен cuda, но я получил указанную ошибку несоответствия.


Некоторая потенциально полезная информация:

Запуск cat /proc/driver/nvidia/version Я получаю:

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)

Я запускаю Ubuntu 16.04.2 LTS.

Релиз ядра: 4.4.0-66-общий.

Спасибо!

+149
25 мар. '17 в 22:47
источник поделиться
8 ответов

Удивительный сюрприз, перезагрузка решила проблему (я думал, что уже это пробовал).

Решение Robert Crovella, упомянутое в комментариях, также может быть полезно кому-то другому, так как оно очень похоже на то, что я сделал, чтобы решить проблему в первый раз, когда у меня было это.

+232
25 мар. '17 в 23:06
источник

Как сказал @etal, перезагрузка может решить эту проблему, но я думаю, что процедура без перезагрузки поможет.

Для китайцев проверьте мой блог → 中文 版

Сообщение об ошибке

NVML: несоответствие версии драйвера/библиотеки

сообщите нам, что модуль ядра драйвера Nvidia (kmod) имеет неправильную версию, поэтому мы должны выгрузить этот драйвер, а затем загрузить правильную версию kmod

Как это сделать?

Сначала мы должны знать, какие драйверы загружены.

lsmod | grep nvidia

вы можете получить

nvidia_uvm            634880  8
nvidia_drm             53248  0
nvidia_modeset        790528  1 nvidia_drm
nvidia              12312576  86 nvidia_modeset,nvidia_uvm

наша конечная цель - выгрузить nvidia mod, поэтому мы должны выгрузить модуль за nvidia

sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm

затем выгрузите nvidia

sudo rmmod nvidia

Устранение неполадок

если вы получили ошибку, например rmmod: ERROR: Module nvidia is in use, которая указывает, что модуль ядра используется, вы должны убить процесс, который использует kmod:

sudo lsof/dev/nvidia *

а затем убейте этот процесс, затем продолжите разгружать kmods

Test

подтвердите, что вы успешно выгрузили эти килоды

lsmod | grep nvidia

вы ничего не получите, а затем подтвердите, что вы можете загрузить правильный драйвер

SMI-NVIDIA

вы должны получить правильный вывод

+177
26 июл. '17 в 6:33
источник

Это также случилось со мной в Ubuntu 16.04 с использованием пакета nvidia-348 (последняя версия nvidia в Ubuntu 16.04).

Однако я мог бы решить эту проблему, установив nvidia-390 через проприетарные драйверы графического процессора PPA.

Таким образом, решение описанной проблемы в Ubuntu 16.04 заключается в следующем:

  • sudo add-apt-repository ppa:graphics-drivers/ppa
  • sudo apt-get update
  • sudo apt-get install nvidia-390

Примечание: это руководство предполагает чистую установку Ubuntu. Если у вас установлены предыдущие драйверы, может потребоваться перезагрузка, чтобы перезагрузить все модули ядра.

+4
05 июн. '18 в 11:30
источник

Так что у меня возникла эта проблема, ни одно из других средств не помогло. Сообщение об ошибке было непрозрачным, но проверка dmesg была ключевой:

[   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.

Однако я полностью удалил версию 384 и удалил все оставшиеся драйверы ядра nvidia-384*. Но даже после перезагрузки я все равно получал это. Это означало, что ядро все еще было скомпилировано по ссылке 384, но только находило 410. Поэтому я перекомпилировал свое ядро:

# uname -a # find the kernel it 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

И тогда это сработало.

После удаления 384 у меня все еще оставалось 384 файла в /var/lib/dkms/nvidia-XXX/XXX.YY/4.13.0-43-generic/x86_64/module/lib/modules/4.13.0-43-generic/ядра/драйверы

Я рекомендую использовать команду locate (не установлена по умолчанию), а не искать файловую систему каждый раз.

+4
24 янв. '19 в 15:06
источник

Я получил ошибку, failed to initialize NVML: Driver/Library version mismatch из моего nvidia-gpu-Temperature-Indicator. И nvidia-smi не удалось напечатать какую-либо информацию. Я пытался найти, были ли другие версии драйвера nvidia, установленные в моем Ubuntu. Но я только что нашел nvidia-driver-390. В итоге reboot помогла мне решить проблему.

+4
05 февр. '19 в 16:39
источник

Была проблема тоже. (Я использую Ubuntu 18.04)

Что я сделал:

dpkg -l | grep -i nvidia

Затем sudo apt-get remove --purge nvidia-381 (и каждая дублированная версия, в моем случае у меня было 381, 384 и 387)

Затем sudo ubuntu-drivers devices чтобы перечислить, что доступно

И я выбираю sudo apt install nvidia-driver-430

После этого nvidia-smi правильный вывод (перезагрузка не требуется). Но я полагаю, вы можете перезагрузиться, если сомневаетесь.

Я также следовал этой установке, чтобы переустановить cuda + cudnn.

0
11 июн. '19 в 17:07
источник

Лучшие 2 ответа не могут решить мою проблему. Я нашел решение на официальном форуме Nvidia, решил мою проблему. Приведенная ниже информация об ошибке может быть вызвана установкой двух разных версий драйвера разными способами. Например, установите драйвер Nvidia с помощью apt и официального установщика.

Не удалось инициализировать NVML: несоответствие версии драйвера/библиотеки

Чтобы решить эту проблему, нужно выполнить только одну из следующих двух команд.

sudo apt-get --purge remove "*nvidia*"
sudo /usr/bin/nvidia-uninstall
0
17 июл. '19 в 14:52
источник

Для моего случая я установил драйвер nvidia, а затем cuda. Я обнаружил, что это можно исправить, просто установив CUDA. https://developer.nvidia.com/cuda-toolkit

-3
17 нояб. '18 в 4:00
источник

Посмотрите другие вопросы по меткам или Задайте вопрос