Рейтинг:0

Ubuntu 20.04 регулярно ломает драйвер Nvidia

флаг jp

Я использую Ubuntu 20.04.3 LTS на двух машинах (мой персональный компьютер и небольшой рабочий сервер), обе оснащены картами Nvidia. Персональная машина имеет RTX2080 Super, а сервер работает с двумя RTX3090.

Мы проводим исследования глубокого обучения на работе, поэтому я использую машины в основном для запуска TensorFlow или связанных с ним инструментов, использующих GPU.

Я был тем, кто настраивал обе машины с нуля, поэтому я сделал новую установку Ubuntu 20.04.3 LTS на обеих машинах, обновил, обновил, установил основные инструменты, установил драйвер Nvidia + CUDA. Для этого на обеих машинах я использовал установщик runfile с официальной страницы Nvidia здесь для CUDA, который содержит драйвер Nvidia. Перед запуском этого установщика я всегда добавляю драйвер Noveau в черный список, как показано ниже. здесь Например. Я не считаю себя очень опытным администратором для таких систем, поскольку у меня есть исследовательский опыт, я научился использовать и понимать Linux за последние месяцы, и до сих пор все, что нам нужно для нашей небольшой команды, работало как шарм. За исключением небольшой проблемы, с которой я сталкиваюсь как на своей личной машине, так и на исследовательском сервере. Кажется, что мои установки драйверов регулярно ломаются, и я не могу понять, почему и когда именно.

Зачем упоминать обе машины? Потому что я думаю, что это одна и та же проблема, выраженная двумя разными способами: (1) Моя личная машина — та, которую я также использую для работы и кодирования. К нему подключен дисплей, и через регулярные промежутки времени (я бы сказал, каждые 3-5 недель) он не загружается на экран входа в систему, а показывает мне одну строку, говорящую:

/dev/nvme0n1p1: очистить

Точную строчку не помню, но в ней точно указано расположение моего SSD и работа "чистая". А дальше с этого момента ничего не происходит. Я обычно решаю проблему, войдя в систему через Ctrl+Alt+F2 и просто перезапустив установщик cuda/driver с помощью:

судо ш cuda_11.5.0_495.29.05_linux.run

а затем перезагрузиться. После перезагрузки мой экран входа возвращается, и все снова работает.Я делаю это уже около года на своей личной машине, и меня никогда не беспокоило, где проблема, потому что после переустановки работает CUDA, работает TF-GPU, работает мой пользовательский интерфейс и т.д. Это все, что мне нужно.

(2) Теперь идет сервер без дисплея. Работает без перезагрузки без остановки. Но через равные промежутки времени (те же 3-5 недель) все, что связано с GPU, просто перестает работать. Скрипты Python, использующие TensorFlow-GPU, больше не найдут GPU. nvidia-smi показывает сообщение:

Сбой NVIDIA-SMI, поскольку ему не удалось установить связь с драйвером NVIDIA. Убедитесь, что последняя версия драйвера NVIDIA установлена ​​и работает.

В один прекрасный день все будет там и будет работать, и без каких-либо ручных манипуляций в системе (например, обновлений и т. д.) она перестанет работать и покажет это сообщение. Как и в случае с моей личной машиной, проблема решается простой переустановкой драйвера. Но поскольку речь идет о сервере, за который я несу ответственность и которым пользуются многие люди, я хочу убедиться, что у меня есть решение для него, и подробно понять проблему, чтобы избежать ее в будущем.

я заглянул в /var/журнал/dpkg.log чтобы увидеть, могу ли я найти какое-либо сообщение об автоматически обновленном драйвере. Я также просматривал Xorg, загрузочные и системные журналы, но мне не хватает знаний, чтобы найти намеки на то, что идет не так в этих журналах. Одна вещь, которую я узнал, это то, что работает: dpkg --список | grep нвидиа на самом деле вообще ничего не возвращает на сервер.nvidia-smi напечатает вышеупомянутое сообщение. Как ни странно, nvcc --версия все еще работает и дает:

nvcc: драйвер компилятора NVIDIA (R) Cuda
Авторское право (c) 2005-2021 Корпорация NVIDIA
Построено Mon_Sep_13_19:13:29_PDT_2021
Инструменты компиляции Cuda, выпуск 11.5, V11.5.50
Сборка cuda_11.5.r11.5/compiler.30411180_0

так что кажется, что CUDA все еще там, но драйвера nvidia нет.

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

На данный момент я не стал повторно запускать установку на сервере, так как хотел оставить его в «сломанном» состоянии, на случай, если у вас есть совет, где искать проблему. В любом случае заранее спасибо за помощь!

ChanganAuto avatar
флаг us
Всякий раз, когда вы устанавливаете драйвер с помощью двоичных файлов Nvidia, т. Е. Не из репозиториев, как вы должны, то именно это и должно происходить. Вам нужно переустанавливать каждый раз, когда есть обновление ядра.
Hendrik avatar
флаг jp
Звучит разумно! Это означает, что `sudo apt install nvidia-driver-470`, скорее всего, выполнит эту работу? Почему тогда установщик CUDA по умолчанию поставляется с драйвером? Должен ли я все еще делать черный список nouveau в этом случае?
ChanganAuto avatar
флаг us
Да, это должно сделать работу. И вы должны установить Cuda также из репозиториев. И нет, не нужно ничего заносить в черный список, об этом позаботится установка.
Hendrik avatar
флаг jp
Большое спасибо за ваш простой и быстрый ответ!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.