Несоответствие версии драйвера/библиотеки 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-generic.

спасибо!

3 ответов


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

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


как сказал @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

тест

убедитесь, что вы успешно выгрузить эти kmods

lsmod распечатывает | грэп компания NVIDIA

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

nvidia-smi

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


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

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

таким образом, решение описанной проблемы на Ubuntu 16.04 делает это:

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

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