Перейти к основному содержанию

Сервер для четырёх GPU GeForce RTX 4090 — диагностика и решение проблем

GIGABYTE GeForce RTX 4090 WINDFORCE V2 24G

Сегодня будет история со счастливым концом. Из-за этой истории у нас приостановилось тестирование нового прототипа сервера для четырёх GPU GeForce RTX 4090.

Итак, мы установили восьмой прототип сервера для четырёх GPU GeForce RTX 4090. Подключили, настроили, фары протёрли, завели и отдали разработчикам на тестирование.

Восьмой прототип сервера для четырёх GPU GeForce RTX 4090 — предпрод

nvidia

Если вы вводите сервер с незнакомой непроверенной конфигурацией, планируйте время на проверку этой самой конфигурации. Месяц. Реально лучше тестировать сервер "в бою" месяц. За это время может всплыть куча проблем, с которыми вы не планировали сталкиваться. Где взять этот месяц — совершенно непонятно. За этот срок наличие тех же самых серверных компонентов не гарантировано, это печально. Приходится или уменьшать сроки тестирования или рисковать и заменять компоненты непроверенными аналогами.

Итак, восьмой прототип первые тесты прошёл и был выпущен в прод. Разработчики подали максимальную нагрузку, сервер ночью весело перезагрузился. Потом через какое-то время снова перезагрузился. И снова. В день могло быть до пяти перезагрузок. Это катастрофа! Прототип не тянет! Стали разбираться.

Предположение первое

Проблемы с драйверами, установленными в ОС.

Два дня ушло на анализ логов системы. Два человека по очереди пытались найти причину спонтанных перезагрузок. Не нашли ничего. Сервер просто перезагружается без следов в логах системы или BMC.

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

Попытались менять версии драйверов, безрезультатно. Читали форумы — похожих проблем не нашли.

Дополнительно выполнили нагрузочное тестирование CPU. Тест прошёл успешно.

Linux — простой стресс-тест CPU

Предположение второе

Не тянут блоки питания, GPU картам при полной нагрузке не хватает мощности БП. В сервере два блока питания по 2000 Вт каждый. Теоретически должно хватать, но, возможно, какой-то из БП с изъяном? Это можно проверить.

Самый простой способ — ограничить энергопотребление видеокарт и попытаться выполнить проблемный код, приводящий к перезагрузке.

NVIDIA RTX 4090 — ограничиваем энергопотребление

Для этого нужно снизить значение Power Limit. Рулить будем с помощью утилиты командной строки от NVIDIA: nvidia-smi.

Если у вас четыре видеокарты, то лимиты можно установить так:

nvidia-smi -i 0 -pl 150
nvidia-smi -i 1 -pl 150
nvidia-smi -i 2 -pl 150
nvidia-smi -i 3 -pl 150

Верхнюю границу энергопотребления GPU можно увидеть также в nvidia-smi.

gpu

Как вы уже догадались, проблема повторилась даже с заниженным энергопотреблением. Делаем вывод, что блоки питания не при чём. Снимаем ограничение на энергопотребление.

Предположение третье

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

Нагрузочный тест видеопамяти — memtest_vulkan

Утилита memtest_vulkan — это кроссплатформенный инструмент с открытым исходным кодом, написанный на Vulkan Compute. Разработан как альтернатива инструменту на основе OpenCL memtestCL.

Тест может быть полезен при оценке стабильности при оверклокинге или ремонте GPU. И для проверки на заводские неисправности.

Запускаем тест.

./memtest_vulkan

gpu

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

gpu

Так тестируется первая видеокарта, а нагружена четвёртая.

На первых трёх видеокартах короткий тест выполнился успешно. А на четвертой карте через минуту после тестирования сервер ушёл в перезагрузку. Три раза запускали тест на четвёртой видеокарте, три раза сервер перезагружался.

gpu

Мы продвинулись. С одной стороны мы не увидели ошибок при тестировании. С другой стороны мы локализовали проблему и сузили круг поиска. 

Предположение четвёртое

Проблема может быть:

  • В четвёртой видеокарте.
  • В шлейфе PCIe.
  • В слоте PCIe.
  • В процессоре.
  • В памяти.
  • В кабеле питания видеокарты.
  • В материнской плате.

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

Тут ещё мини-квест нарисовался, нужно определить нужные нам видеокарты.

Linux — определить GPU видеокарту NVIDIA в сервере

Зная адрес шины проблемного устройства можно по очереди извлекать GPU карты и смотреть, какое из устройств пропало из системы. Метод научного перетыка, так сказать. Естественно, с корректным выключением и включением сервера. Поэтому при планировании работ с GPU серверами сразу планируйте время на несколько разборок-сборок и перезагрузок сервера. Чем больше видеокарт в сервере, там больше времени может понадобиться.

Квест пройден, все карты помечены. Проблемная видеокарта поменялась местами с соседкой. Разъёмы почистили, шлейфы переткнули.

Включаем сервер, сервер стоит в полуразобранном виде. Тестируем память.

gpu

О чудо! Все четыре GPU успешно проходят тестирование.

На радостях собираем сервер, устанавливаем в стойку, включаем. Сервер отказывается загружаться, останавливается на коде BIOS 1. Это уже не смешно. Явно проблема аппаратного характера.

Разбираем сервер, перетыкаем всю память, собираем, включаем. Сервер включился.

nvidia

Завершение диагностики и тестирования

Делаем вывод, что проблема была аппаратного характера и заключалась в плохом контакте компонентов сервера. Или планка памяти шалила, или шлейф PCIe был плохо подключен. Или и то и другое.

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

Сервер в проде, трудится под нагрузкой. Не перезагружается.

 

Похожие материалы

Четыре GPU NVIDIA A100 в SuperWorkstation

Для начала мы устанавливали две карты A100, соответственно, понадобился только один процессор. Теперь пришла пора добавить еще две карты A100, нам также понадобится второй процессор и память.

Второй прототип сервера в корпусе ExeGate для двух GPU GeForce RTX 4090

Покажу фотографии и расскажу о трудностях сборки прототипа сервера для двух видеокарт PALIT GeForce RTX 4090 GameRock 24GB в корпусе для майнинга ExeGate Pro 6-470.