Почему компактный DGX-кластер - это боль и как с ней справиться
Собрать кластер из нескольких DGX-модулей в корпусе размером с обычный сервер - задача для мазохистов. Тепловыделение зашкаливает, NVMe-диски перегреваются, а счет за электричество растет как на дрожжах. Но если вы читаете это, значит, вам тоже нужно много вычислительной мощности в маленьком пространстве. Расскажу, как я прошел через этот ад и что из этого вышло.
Важно: этот гайд написан на основе реального опыта сборки кластера из трех DGX Spark модулей в корпусе Supermicro 4U. Даты актуальны на 03.02.2026, поэтому все версии ПО и железа указаны для этого времени.
1 Охлаждение: когда 90°C - это норма, но ненадолго
Проблема: DGX Spark, особенно с GPU на архитектуре Blackwell, выделяет до 700 Вт тепла на модуль. В компактном корпусе это быстро приводит к тепловому дросселингу. Мои GPU достигали 90°C за минуты, и производительность падала на 40%.
Почему это происходит? Стандартные вентиляторы в серверных корпусах рассчитаны на равномерный поток воздуха, но в плотной компоновке возникают горячие зоны. Кроме того, радиаторы GPU не всегда эффективны при высоких нагрузках в течение долгого времени.
Решение: перепроектировать систему охлаждения с упором на статическое давление и направленные потоки.
Шаги по переделке охлаждения:
- Замена вентиляторов: Установите вентиляторы с высоким статическим давлением, например, Noctua iPPC-3000 PWM. Они дорогие, но перемещают воздух через плотные радиаторы.
- Добавление воздуховодов: Используйте 3D-печатные воздуховоды из термостойкого пластика, чтобы направлять воздух прямо на GPU. Это уменьшает смешивание горячего и холодного воздуха.
- Модификация радиаторов: Если есть доступ к кастомным СЖО, то лучше, но для воздушного охлаждения можно добавить тепловые трубки к критическим компонентам.
- Контроль скорости вентиляторов: Настройте кривую PWM на основе температуры самого горячего GPU, а не среднего значения. Используйте скрипты на основе nvidia-smi.
#!/bin/bash
# Скрипт для управления вентиляторами на основе температуры GPU
MAX_TEMP=80
CURRENT_TEMP=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits | sort -nr | head -1)
if [ $CURRENT_TEMP -gt $MAX_TEMP ]; then
echo "Температура критическая: $CURRENT_TEMP°C"
# Увеличить скорость вентиляторов через IPMI или другое API
ipmitool raw 0x30 0x70 0x66 0x01 0x00 0x64
fi
2 NVMe over Fabrics: когда локальных дисков не хватает
Проблема: В компактном кластере сложно разместить много NVMe-дисков непосредственно на каждом узле. Но для обучения LLM, таких как GPT-OSS-120B, нужны быстрые хранилища для датасетов и чекпоинтов.
Почему NVMe-oF? Потому что это позволяет вынести хранилище в отдельный сервер и предоставлять его по сети с задержкой, близкой к локальной. На 03.02.2026, стандарт NVMe/TCP уже достаточно зрелый, но для максимальной производительности лучше использовать RDMA.
Решение: Использовать карты NVIDIA BlueField 3 для разгрузки NVMe-oF и RDMA. BlueField 3 имеет встроенные процессоры Arm, которые управляют сетевым трафиком, освобождая CPU основного сервера.
Шаги настройки NVMe-oF с BlueField 3:
- Установка BlueField 3: Вставьте карты в каждый узел кластера и в сервер хранилища. Вы можете приобрести их через официальный сайт NVIDIA. Убедитесь, что сеть поддерживает RoCE (RDMA over Converged Ethernet).
- Настройка DPU: Загрузите последнюю версию DOCA (на 03.02.2026 это DOCA 3.0) и настройте NVMe-oF целевое устройство на сервере хранилища.
- Конфигурация инициатора: На узлах DGX установите драйверы NVMe-oF и подключитесь к целевому устройству. Используйте утилиту
nvme connect. - Тестирование производительности: Проверьте задержку и пропускную способность с помощью
fio.
# На сервере хранилища (цель)
sudo nvmetcli restore /etc/nvmet/config.json
# На узле DGX (инициатор)
sudo nvme connect -t rdma -n nvme-target -a 192.168.1.100 -s 4420
Предупреждение: Неправильная настройка RDMA может привести к падению сети. Убедитесь, что свитчи поддерживают Flow Control и PFC. Иначе будут потери пакетов и снижение производительности.
Если вы ранее сталкивались с телеметрией NVIDIA, то знаете, что в DGX OS много лишнего. Как и в статье DGX OS умер, да здравствует Ubuntu, я рекомендую использовать чистый Ubuntu Server 24.04 LTS с драйверами NVIDIA. Это дает больше контроля над системой.
3 Энергопотребление: как не разориться на электричестве
Проблема: Три DGX Spark в нагрузке потребляют около 2500 Вт. Это много даже для дата-центра, не говоря уже о домашней лаборатории. Счет за электричество может превышать стоимость железа за год.
Почему это важно? Потому что энергоэффективность - это не только экономия денег, но и снижение тепловыделения, что упрощает охлаждение.
Решение: Оптимизация BIOS, настройка состояний процессора и GPU, а также динамическое масштабирование частот.
Шаги по снижению энергопотребления:
- Настройка BIOS: Включите состояния C-states для процессора, установите политику энергопотребления на "Power Saver" для фоновых задач.
- Управление GPU: Используйте nvidia-smi для установки максимальной мощности GPU при помощи флага
--power-limit. Для инференса можно снизить лимит на 20% без потери производительности. - Мониторинг: Установите инструменты типа Grafana с плагином для NVIDIA, чтобы отслеживать потребление в реальном времени.
- Автоматическое масштабирование: Напишите скрипт, который снижает частоту GPU, когда нагрузка падает, и увеличивает при пиковой нагрузке.
# Установка лимита мощности для всех GPU
sudo nvidia-smi -pl 280
# Мониторинг потребления
nvidia-smi --query-gpu=power.draw --format=csv -l 1
Распространенные ошибки и как их избежать
- Игнорирование перепада давления: Если в корпусе отрицательное давление, пыль будет засасываться через все щели. Добейтесь нейтрального или положительного давления, сбалансировав вентиляторы.
- Неправильная прокладка кабелей: Кабели, блокирующие airflow, могут повысить температуру на 5-10°C. Используйте стяжки и прокладывайте кабели вдоль рамки.
- Использование стандартных теплопаст: Для высоких температур лучше использовать жидкий металл или высокопроводящие пасты типа Thermal Grizzly Kryonaut. Но будьте осторожны с проводимостью - некоторые пасты электропроводны.
- Отсутствие резервирования питания: Компактный кластер все равно потребляет много энергии. Используйте ИБП с достаточной мощностью, чтобы избежать повреждения при скачках напряжения.
Частые вопросы (FAQ)
| Вопрос | Ответ |
|---|---|
| Можно ли использовать потребительские GPU вместо DGX? | Да, но для кластера лучше серверные GPU из-за лучшей поддержки многопоточности и надежности. Однако, если бюджет ограничен, можно собрать кластер на нескольких V620 или даже на RTX 5090, как в тихом монстре. |
| NVMe-oF действительно быстрее локальных SATA SSD? | Да, особенно при использовании RDMA. Задержка может быть менее 10 микросекунд, что сравнимо с локальными NVMe. Но пропускная способность зависит от сети - используйте 100 Гбит Ethernet или InfiniBand. |
| Какой корпус лучше для компактного DGX-кластера? | Я использовал Supermicro 4U с модификациями. Но также подходят корпуса от Chenbro или обычные серверные корпуса с хорошей вентиляцией. Убедитесь, что есть место для больших вентиляторов и кабелей. |
| Стоит ли использовать СЖО? | Для постоянной работы в дата-центре воздушное охлаждение надежнее. СЖО эффективнее, но требует обслуживания и может протечь. Для домашнего использования, если вы готовы к риску, СЖО даст более низкие температуры. |
Сборка компактного DGX-кластера - это вызов, но результат того стоит. Вы получаете огромную вычислительную мощность в относительно небольшом объеме. Главное - не экономить на охлаждении и правильно настроить хранилище. И помните, что даже после настройки нужно постоянно мониторить температуру и потребление, чтобы избежать сюрпризов.
Если вы хотите узнать больше о использовании такого кластера для безопасности, посмотрите статью про LLM-IDS/IPS для nginx на DGX Spark. А для тех, кто предпочитает AMD, есть гайд по бюджетному кластеру на Strix Halo.
Удачи в сборке! И не забудьте: первый признак успеха - когда ваш кластер работает стабильно, а не греет комнату как батарея.