Несоответствие версии драйвера/библиотеки NVIDIA NVML
когда я запускаю nvidia-smi
Я получаю следующее сообщение:
Failed to initialize NVML: Driver/library version mismatch
час назад я получил то же сообщение и удалил свою библиотеку cuda, и я смог запустить nvidia-smi
, получаем следующий результат:
после этого я скачал 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.