Сколько ядер и памяти нужно серверу с ускорителями NVIDIA
Недостаток ядер или пропускной способности памяти оставляет ускорители без данных, и производительность узла падает на десятки процентов. Разбираем, сколько ядер закладывать на ускоритель под разные задачи, как считать объём памяти и что проверить в распределении линий расширения.
В сервере с ускорителями центральный процессор и оперативная память не выполняют основные вычисления, но определяют, насколько полно эти вычисления загружены работой. Недостаток ядер или пропускной способности памяти приводит к тому, что дорогие ускорители простаивают в ожидании данных, и фактическая производительность оказывается ниже расчётной на десятки процентов.
Разберём, из чего складывается требование к процессорам и памяти, как считается их соотношение с числом ускорителей и что проверить до заказа платформы. Модельный ряд и конфигурации — на странице направления ускорителей NVIDIA.
Что делает центральный процессор в такой машине
- Подготовка данных. Чтение с накопителей, распаковка, преобразование, формирование пакетов для загрузки в память ускорителя. Для задач с изображениями и видео это самая тяжёлая часть, и она целиком лежит на процессоре.
- Управление очередью работ. Запуск вычислительных ядер, синхронизация, обработка результатов. Каждому ускорителю нужен свой поток управления.
- Обмен между узлами. Обработка сетевого стека при распределённом обучении, если не используются механизмы прямого доступа сетевого адаптера к памяти ускорителя.
- Обслуживание платформы. Виртуализация, контейнеры, мониторинг, файловая система. Фоновая нагрузка, которую обычно недооценивают при расчёте.
Сколько ядер закладывать
Практическое правило для серверов с восемью ускорителями — от 6 до 16 физических ядер на один ускоритель. Разброс большой, потому что требование определяется задачей, а не самим ускорителем.
- Обучение языковых моделей на подготовленных данных. Данные лежат в готовом виде, предобработка минимальна. Достаточно 6–8 ядер на ускоритель.
- Обучение на изображениях и видео. Декодирование и преобразования выполняются на процессоре в реальном времени. Требуется 12–16 ядер на ускоритель, иначе загрузка ускорителя падает.
- Инференс с высокой частотой запросов. Основная нагрузка — приём запросов, сборка пакетов, постобработка. Требование ближе к 8–12 ядрам на ускоритель.
- Классическое машинное обучение и аналитика рядом с ускорителями. Расчёт ведётся от самой задачи, а не от числа ускорителей.
Частота при этом важнее, чем кажется: часть подготовки данных плохо распараллеливается, и на такой работе процессор с меньшим числом более быстрых ядер выигрывает у процессора с большим числом медленных.
Оперативная память
- Объём. Ориентир — от одного до двух объёмов суммарной памяти ускорителей. Для восьми ускорителей по 80 ГБ это 640–1280 ГБ системной памяти. Меньший объём допустим при потоковой подаче данных, больший нужен при кэшировании набора данных в памяти.
- Заполнение каналов. Все каналы памяти процессора должны быть заполнены. Половина модулей при том же суммарном объёме даёт примерно вдвое меньшую пропускную способность, и это напрямую бьёт по скорости подготовки данных.
- Привязка к узлам. В двухпроцессорной системе ускорители подключены к линиям расширения конкретного процессора. Память, выделенная процессу, должна принадлежать тому же узлу — иначе каждый обмен проходит через межпроцессорную шину с лишней задержкой.
- Закреплённая память. Быстрая передача данных в ускоритель требует памяти, зафиксированной в физическом адресном пространстве. Её объём учитывается отдельно от рабочего набора приложения.
Линии расширения и топология
| Элемент | Требование | Что происходит при нехватке |
|---|---|---|
| Линии на ускоритель | x16 текущего поколения | Замедление загрузки данных и обмена между картами |
| Линии на сетевой адаптер | x16 на адаптер 400 Гбит/с | Сетевой канал не выходит на заявленную скорость |
| Линии на накопители | x4 на каждый | Ограничение скорости чтения набора данных |
| Коммутаторы шины на плате | Группировка карт и адаптеров | Обмен идёт через процессор с лишней задержкой |
| Прямой обмен между картами | Выделенная шина между ускорителями | Весь обмен ложится на линии расширения |
Накопители и подача данных
- Локальный буфер. Набор накопителей с интерфейсом NVMe внутри узла, куда набор данных выкладывается перед обучением. Снимает нагрузку с сети и с общего хранилища.
- Требуемая скорость чтения. Считается от объёма одного прохода по данным и допустимого времени этого прохода. Для восьми ускорителей на задачах с изображениями речь идёт о единицах гигабайт в секунду устойчивого чтения.
- Число потоков чтения. Определяется числом рабочих процессов подготовки данных — и снова упирается в число ядер процессора.
- Отдельные накопители под систему. Система и журналы выносятся на отдельную пару дисков, чтобы не конкурировать с потоком данных.
Питание и охлаждение
Потребление восьми ускорителей верхнего уровня составляет несколько киловатт, к ним добавляются процессоры, память и вентиляторы. Суммарная мощность узла достигает 6–10 кВт, и это меняет требования ко всей стойке: одна такая машина потребляет столько же, сколько десяток обычных серверов.
- Блоки питания подбираются с резервированием и с запасом на пиковое потребление, которое кратковременно превышает среднее.
- Воздушное охлаждение справляется до определённой плотности; выше неё применяется жидкостное охлаждение.
- Температура воздуха на входе ограничивает производительность: при превышении порога ускорители снижают частоту.
- Проверяется направление потока воздуха в стойке и отсутствие рециркуляции горячего воздуха между рядами.
Частые вопросы
Можно ли поставить один процессор вместо двух? Можно, если все ускорители и сетевые адаптеры получают нужное число линий от одного процессора, а число ядер покрывает потребность. Односокетная конфигурация даже удобнее: исчезает вопрос привязки памяти к узлам.
Что важнее — частота процессора или число ядер? Зависит от задачи. При тяжёлой предобработке данных решает число ядер, при последовательной подготовке и большом числе мелких запросов — частота. Для смешанной нагрузки берут модель со средними значениями обоих параметров.
Нужно ли столько оперативной памяти, если модель помещается в память ускорителей? Нужно, если данные кэшируются в системной памяти или если применяется выгрузка части состояния из памяти ускорителя. При потоковом чтении с быстрых накопителей требование к объёму ниже.
Как понять, что процессор стал узким местом? По загрузке ускорителей: если она держится заметно ниже полной при полной загрузке ядер процессора, ограничение лежит в подготовке данных.
Обязательны ли накопители NVMe? Для обучения на больших наборах данных — да. Дисковый массив на механических накопителях не обеспечивает нужной скорости случайного чтения, и ускорители простаивают.
Что мы делаем
Подбираем платформу под задачу целиком: число и модель ускорителей, процессоры и память под требуемое соотношение, топологию линий расширения, накопители и сетевые адаптеры, блоки питания и схему охлаждения. Считаем требования к стойке по мощности и теплу, проверяем совместимость компонентов и поставляем оборудование напрямую из Китая с проверкой перед отгрузкой. Модельный ряд и типовые конфигурации — на странице направления ускорителей NVIDIA, альтернативные платформы — на странице ускорителей MetaX.
Пришлите описание задачи, объём данных и требуемое время обучения или частоту запросов на sale@tkasiatorg.ru — посчитаем конфигурацию узла и дадим спецификацию с ценами и сроками поставки.

