Я использую Ubuntu 18.04 и недавно (около месяца) установил CUDA 10.2 с установкой runfile после МНОГО проблем с немного рекомендованной .deb установка. Все было хорошо: nvidia-smi показала статистику GPU, и я смог запустить свой параллельный код на GPU. Сегодня я запустил свою машину, и центр программного обеспечения предложил несколько обновлений ... Казалось, что это просто обычные вещи из этого пакета libnvidia-compute-440 , но я не обратил слишком много внимания и установил все обновления. После этого, мои коды CUDA не работали, я попытался nvidia-smi
и получил
Не удалось инициализировать NVML: Несоответствие версии драйвера / библиотеки
Я перезагрузил системы, но ошибки все равно остались. Я потратил полдень на поиск возможных решений, и , я думаю, мне удалось найти суть проблемы: запуск dmesg | tail -4
дает
NVRM: API mismatch: the client has the version 440.59, but
NVRM: this kernel module has the version 440.33.01. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
версию Пакет libnvidia-compute-440
, который у меня есть, сейчас действительно 440.59 , но моя версия драйверов - 440.33.01 , так как dmesg | grep nvidia
(или аналогичные команды, которые я пробовал) показывает (см. в третьей строке)
[ 16.462737] nvidia-nvlink: Nvlink Core is being initialized, major device number 237
[ 16.463235] nvidia 0000:03:00.0: enabling device (0006 -> 0007)
[ 16.785628] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 440.33.01 Tue Nov 12 23:43:11 UTC 2019
[ 16.916202] [drm] [nvidia-drm] [GPU ID 0x00000300] Loading driver
[ 16.916205] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:03:00.0 on minor 1
На самом деле, посмотрев /var/log/apt/history.log
, я увидел, что libnvidia-compute-440 была обновлено с 440.33.01-0ubuntu1
до 440.59-0ubuntu0.18.04.133.01
. Все эти свидетельства привели меня к выводу, что я могу попытаться вернуться к предыдущей версии этой библиотеки, однако apt-get install libnvidia-compute-440 = 440.33.01
(что я считаю правильным синтаксис) дал мне E: Версия '440.33.01' для 'libnvidia-compute-440' не была найдена
.
Я действительно надеюсь, что решение, которое не подразумевает удаление CUDA существует, так как установка заняла у меня выходные.
ОБНОВЛЕНИЕ: РЕШЕНО
Я был очень осторожен, боясь, что испорчу свою установку CUDA. Однако я набрался смелости и обновил мой драйвер nvidia с помощью sudo apt install nvidia-driver-440
.
Он успешно обновил драйверы, которые теперь соответствуют версии libnvidia-compute 440.59 .
После перезагрузки все работает нормально, как и прежде.