Вторая видеокарта не отображается в nvidia-smi в Ubuntu 22.04

Вопрос или проблема

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

Вот что я пробовал сделать до сих пор:

  • Поменять местами GPU в их PCI слотах, чтобы исключить проблему с оборудованием
  • Обновить BIOS материнской платы до последней версии
  • Чистая установка 22.04 для каждой установки драйвера ниже
  • Каждая установка NVIDIA CUDA (>= 11.7) с сайта загрузок NVIDIA (deb local, deb network и run файл)
  • Каждый драйвер Ubuntu nvidia-driver*, начиная с самой ранней версии, чтобы поддерживать минимальную версию CUDA 11.7
  • Откат до старой версии ядра (5.15) с помощью mainline
  • Откат до ядра 6.4
  • Загрузка с подключенным HDMI монитором ко второму GPU

*Обратите внимание, что все старые драйверы Ubuntu nvidia-drivers-5XX являются переходными пакетами к 525 или 535 (apt search nvidia-driver). Последний драйвер, при котором оба GPU работали, был 515.

Один GPU, который отображается (также мой дисплейный GPU), действительно выполняет задачи CUDA, но, похоже, делает мою систему нестабильной/задерживает, когда работа (PyTorch) запускается на несколько минут.

❯ uname -r
5.19.0-46-generic
❯ lspci | grep VGA
09:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
43:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
❯ nvidia-smi
Sat Jul  1 12:11:41 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.125.06   Driver Version: 525.125.06   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:43:00.0  On |                  N/A |
|  0%   41C    P8    24W / 350W |    562MiB / 24576MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1879      G   /usr/lib/xorg/Xorg                140MiB |
|    0   N/A  N/A      2338    C+G   ...ome-remote-desktop-daemon      258MiB |
|    0   N/A  N/A      2375      G   /usr/bin/gnome-shell               87MiB |
|    0   N/A  N/A      3338      G   ...566776601308618822,262144       73MiB |
+-----------------------------------------------------------------------------+

dmesg
Ссылка на GitHub Gist

Странная вещь заключается в том, что периодически, после свежей установки CUDA (не изолированной для одной версии драйвера) и перезагрузки, второй GPU действительно появляется в nvidia-smi. Но после перезагрузки он снова исчезает. Удаление и переустановка CUDA могут это воспроизвести, но это похоже на случайность (и я не хочу делать это каждый раз при перезагрузке)

Есть идеи, как я могу снова заставить машину работать правильно?

Ссылка на nvidia-bug-report

sudo dkms autoinstall

может помочь в реконструкции модулей ядра Nvidia.

На сегодняшний день единственное решение, которое я нашел, — это использовать mainline для установки версии ядра 5.15. Это восстановило мой второй GPU в nvidia-smi.

Я не понимаю, почему текущий образ 22.04.2 LTS использует 5.19, так как здесь указано здесь, что 22.04 LTS должен быть 5.15. Это также странно, что обычное обновление фактически создало эту проблему — я уверен, что главная причина, по которой люди используют версии LTS, заключается в избегании таких проблем.

Редактировать: на основании заметок о выпуске

Ubuntu Desktop автоматически переходит на ядро v5.17 на последних поколениях сертифицированных устройств (linux-oem-22.04)

Ubuntu Server по умолчанию использует не изменяющееся LTS ядро v5.15 (linux-generic)

Так что похоже, что 5.15 может быть только для Ubuntu Server, а Ubuntu Desktop использует изменяющееся ядро. Жаль, что текущее ядро, похоже, что-то испортило…

@Anjum Sayed, могли бы вы подробно рассказать, что вы сделали, чтобы восстановить это. Я использую двухсистемную загрузку Windows 10/Ubuntu 20.04 Desktop и испытываю ту же проблему, когда я больше не могу увидеть ядро GPU RTX 3090:

Loading new nvidia-465.19.01 DKMS files…
Building for 5.15.0-76-generic
Building for architecture x86_64
Building initial module for 5.15.0-76-generic
ERROR: Cannot create report: [Errno 17] File exists: ‘/var/crash/nvidia-dkms-465.0.crash’
Error! Bad return status for module build on kernel: 5.15.0-76-generic (x86_64)
Consult /var/lib/dkms/nvidia/465.19.01/build/make.log for more information.
dpkg: error processing package nvidia-dkms-465 (–configure):
installed nvidia-dkms-465 package post-installation script subprocess returned error exit status 10
dpkg: dependency problems prevent configuration of cuda-drivers-465:
cuda-drivers-465 depends on nvidia-dkms-465 (>= 465.19.01); however:
Package nvidia-dkms-465 is not configured yet.

dpkg: error processing package cuda-drivers-465 (–configure):
dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: dependency problems prevent configuration of cuda-drivers:
cuda-drivers depends on cuda-drivers-465 (= 465.19.01-1); however:
Package cuda-drivers-465 is not configured yet.

dpkg: error processing package cuda-drivers (–configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of nvidia-driver-465:
nvidia-driver-465 depends on nvidia-dkms-465 (= 465.19.01-0ubuntu1); however:
Package nvidia-dkms-465 is not configured yet.

dpkg: error processing package nvidia-driver-465 (–configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of cuda-runtime-11-3:
cuda-runtime-11-3 depends on cuda-drivers (>= 465.19.01); however:
Package cuda-drivers is not configured yet.

dpkg: error processing package cuda-runtime-11-3 (–configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of cuda-demo-suite-11-3:
cuda-demo-suite-11-3 depends on cuda-runtimeNo apport report written because MaxReports is reached already
No apport report written because MaxReports is reached already
No apport report written because MaxReports is reached already
-11-3; however:
Package cuda-runtime-11-3 is not configured yet.

dpkg: error processing package cuda-demo-suite-11-3 (–configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of cuda-11-3:
cuda-11-3 depends on cuda-runtime-11-3 (>= 11.3.1); however:
Package cuda-runtime-11-3 is not configured yet.
cuda-11-3 depends on cuda-demo-suite-11-3 (>= 11.3.58); however:
Package cuda-demo-suite-11-3 is not configured yet.

dpkg: error processing package cuda-11-3 (–configure):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of cuda:
cuda depends on cuda-11-3 (>= 11.3.1); however:
Package cuda-11-3 is not configured yet.

No apport report written because MaxReports is reached already
No apport report written because MaxReports is reached already
dpkg: error processing package cuda (–configure):
dependency problems - leaving unconfigured
Processing triggers for initramfs-tools (0.136ubuntu6.7) …
update-initramfs: Generating /boot/initrd.img-5.15.0-76-generic
Errors were encountered while processing:
nvidia-dkms-465
cuda-drivers-465
cuda-drivers
nvidia-driver-465
cuda-runtime-11-3
cuda-demo-suite-11-3
cuda-11-3
cuda
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ответ или решение

Когда в Ubuntu 22.04 в утилите nvidia-smi не отображается вторая GPU, важно разобраться, что происходит и как это можно исправить. Давайте разберем проблему более подробно и предложим возможные пути ее решения.

Теоретическое обоснование

Первая задачей является понимание, почему система может не распознавать вторую GPU. Это может быть связано с аппаратными неполадками, проблемами с драйверами, несовместимостью версий CUDA или самим ядром операционной системы.

Основные области для диагностики:

  • Аппаратные проблемы: возможность неисправности слота PCIe или самой графической карты.
  • Драйверы: некорректно установленные, конфликтующие или устаревшие драйверы могут препятствовать распознаванию GPU.
  • Версии CUDA и ядра Linux: Несовместимость между ядром операционной системы, версиями драйверов NVIDIA и CUDA может стать причиной проблем с обнаружением оборудования.

Примеры и диагностика

  1. Проверка аппаратной совместимости:

    • Как было упомянуто, Вами уже проведен обмен GPU в PCIe слотах, что дает право предполагать, что оборудование функционирует корректно. Однако, несмотря на это, стоит удостовериться в целостности и чистоте самих слотов на материнской плате.
  2. Диагностика драйверов и обновлений:

    • Информация показывает, что при использовании драйвера 525.125.06 вторая GPU не обнаруживается. Обновления драйверов и ядер могут вносить изменения, которые вызывают проблемы совместимости.
    • Проблемы могут также заключаться в неправильной установке DKMS модулей. Выполнение команды sudo dkms autoinstall может помочь собрать необходимые модули ядра.
  3. Ядро и версия CUDA:

    • Ядро 5.19.0-46-generic может не быть оптимальным для определенных конфигураций оборудования. Регрессия на ядро 5.15 была успешной, и это предполагает, что проблемы можно временно решить, используя более старую версию ядра.
    • CUDA версии также важны; каждая версия CUDA имеет свои рекомендации по минимальной версии драйверов NVIDIA, которые должны быть установлены в системе.

Применение решений

  1. Проверка и обновление ядра:

    • Как было сделано ранее, вы можете использовать mainline для установки более ранних стабильных версий ядра, таких как 5.15. Это может быть действительным временным решением до выяснения причины проблемы в более новых ядрах.
  2. Переустановка драйверов NVIDIA:

    • Пробуйте различные версии драйверов, которые совместимы с вашей версией CUDA. В Ubuntu можно использовать команды:
      sudo apt purge '^nvidia-.*'
      sudo apt update
      sudo ubuntu-drivers autoinstall
  3. Настройка и проверка установки CUDA:

    • Убедитесь, что выбранные версии CUDA и драйверов NVIDIA совместимы между собой. Проверьте рекомендации на странице NVIDIA для каждой версии CUDA.
  4. Анализ журналов системы:

    • Значение имеют логи, полученные через dmesg и nvidia-bug-report, которые могут помочь выявить причину проблемы. Внимательно изучите журналы на наличие ошибок или предупреждений, связанных с вашим оборудованием NVIDIA.

Заключение

Ваш случай отражает необходимость балансирования между стабильностью и актуальностью системы. Использование более старого стабильно работающего ядра вместе с совместимыми версиями CUDA и драйверов может стать временным решением до выхода исправлений или обновлений для вашей конфигурации. Рекомендуется поддерживать регулярные резервные копии системы перед применением таких изменений, чтобы облегчить восстановление в случае неудачи.

Оцените материал
Добавить комментарий

Капча загружается...