GPU-кластер
GPU-кластер — это группа серверов с графическими ускорителями, объединённых высокоскоростной сетью в единую вычислительную систему. Кластер нужен, когда одного GPU-сервера уже не хватает.
Что такое GPU-кластер: определение и основные принципы
Графический процессор (GPU) содержит тысячи ядер и рассчитан на массовые параллельные вычисления. Кластер масштабирует этот принцип на десятки, сотни и тысячи ускорителей. В основе его работы лежат три принципа.
Параллельность.
Задача делится на части, которые считаются одновременно на разных ускорителях.
Масштабируемость.
Мощность кластера наращивают, добавляя новые узлы. Производительность при этом растёт не линейно: чем больше узлов, тем больше времени уходит на обмен данными между ними.
Единое управление.
Пользователь запускает задачу на кластере целиком. Распределением ресурсов между серверами занимается управляющее ПО.
Архитектура GPU-кластера
Вычислительные узлы
Это серверы с GPU, обычно с четырьмя или восемью ускорителями в каждом.
Сеть
Внутри узла ускорители связаны быстрой шиной, например NVLink. Между узлами данные передаются по InfiniBand или высокоскоростному Ethernet. От пропускной способности и задержек этой сети зависит, насколько эффективно ускорители работают вместе.
Хранилище
Оно отправляет узлам данные для обработки и сохраняет результаты. При обучении моделей хранилище должно успевать подавать данные всем ускорителям одновременно.
Управляющее ПО
Планировщик, например Slurm, ставит задачи в очередь и выделяет под них ресурсы. Системы мониторинга следят за загрузкой и состоянием оборудования.
Инженерная инфраструктура
GPU-серверы потребляют много энергии и сильно греются. Поэтому кластеру нужны усиленное электропитание и охлаждение. В плотных конфигурациях применяют жидкостное охлаждение.
Как работает GPU-кластер
GPU-кластер распределяет вычислительную задачу между несколькими графическими ускорителями. Вместо того чтобы один GPU выполнял всю работу, система делит её на части и обрабатывает их параллельно.
Способ распределения зависит от задачи. При рендеринге разные GPU или узлы кластера могут обрабатывать отдельные кадры. При обучении нейросетей вычисления распределяют по-разному: GPU могут обрабатывать разные части данных или совместно выполнять вычисления для разных частей большой модели.
Во время работы GPU передают друг другу необходимые данные и синхронизируют результаты. Если обмен данными происходит слишком медленно, часть ускорителей может простаивать в ожидании. Поэтому производительность GPU-кластера зависит не только от мощности самих GPU, но и от скорости обмена данными между ними.
GPU-кластер и сервер с GPU: в чем разница
Сервер с GPU — это отдельная машина с одним или несколькими ускорителями в одном корпусе. Его мощности хватает для инференса и дообучения моделей среднего размера, рендеринга и аналитики. В инфраструктуре провайдера такие задачи решают
облачные серверы с GPU
или
выделенные серверы с GPU.
Кластер нужен, когда задача превышает возможности одной машины по объёму видеопамяти или по времени расчёта. Например, обучение модели с сотнями миллиардов параметров требует больше памяти, чем есть в одном сервере. При этом кластер сложнее и дороже в эксплуатации: ему нужны выделенная сеть, усиленное электропитание и охлаждение.
Для каких задач используют GPU-кластеры
Искусственный интеллект и машинное обучение.
Основной сценарий — обучение больших языковых и мультимодальных моделей. Крупные модели обучают на сотнях и тысячах GPU. Кластеры также используют для инференса крупных моделей, когда их запрашивает большое число пользователей одновременно.
Высокопроизводительные вычисления (HPC).
Это моделирование климата, расчёты в физике и химии, инженерные симуляции, например аэродинамики или прочности конструкций. Современные суперкомпьютеры всё чаще строят на GPU.
Обработка изображений и видео.
Кластер нужен, когда объём работы большой: рендеринг анимационных фильмов и визуальных эффектов, анализ потоков с тысяч камер видеонаблюдения, обучение моделей компьютерного зрения. Для монтажа или обработки отдельных роликов обычно хватает одного сервера с GPU.