NVIDIA
Генерация кодаNVIDIATensorRTGPUинференсмульти-GPU

TensorRT 11.0: NVIDIA научила ИИ-инференс работать на нескольких GPU сразу

Сергей Сергеев, редактор gen-hub.ru
Сергей Сергеев
Редактор gen-hub.ru
·4 мин чтения
TensorRT 11.0: NVIDIA научила ИИ-инференс работать на нескольких GPU сразу

Когда одного GPU уже не хватает

Есть такой момент в жизни каждого ML-инженера, когда смотришь на модель, которую нужно запустить в продакшене, и понимаешь: она просто не влезает в память одной карты. Раньше это означало либо компромиссы по качеству, либо дорогостоящие костыли с ручным шардингом. NVIDIA решила эту проблему на уровне самого рантайма — в TensorRT 11.0 появилась нативная поддержка мульти-GPU инференса.

И это не просто маркетинговое «теперь поддерживаем много GPU». Это полноценная интеграция с NCCL (NVIDIA Collective Communications Library) — той самой библиотекой, которая гоняет данные между тысячами GPU во время обучения больших моделей. Только теперь она работает на этапе инференса.

Что такое NCCL и почему это важно

NCCL — это транспортный слой для распределённых вычислений от NVIDIA. Она умеет автоматически выбирать оптимальный маршрут передачи данных: NVLink, NVSwitch, PCIe или InfiniBand — в зависимости от топологии вашего кластера. Разработчику не нужно думать, как именно соединены карты: библиотека сама разберётся и выберет наиболее быстрый путь.

TensorRT 11.0 интегрировал в себя полный набор коллективных операций NCCL: AllReduce, Broadcast, Reduce, AllGather, ReduceScatter, AlltoAll, Gather и Scatter. Это означает, что все стандартные паттерны распределённых вычислений теперь доступны прямо из TensorRT без обёрток и хаков.

Две стратегии параллелизма: выбирай под задачу

Самое интересное — как именно TensorRT распределяет работу между GPU. Поддерживаются два принципиально разных подхода.

Тензорный параллелизм — классика для больших моделей. Веса одного слоя делятся между картами: каждая GPU считает свой кусок матричного умножения, результаты собираются через AllReduce. Это единственный реальный вариант, когда веса одного слоя не влезают в память одной карты — размер батча или длина последовательности здесь роли не играют. В трансформерных блоках это реализуется элегантно: колонно-параллельные проекции (QKV, MLP up) + строчно-параллельные (attention output, MLP down) = всего один AllReduce на блок.

Контекстный параллелизм — более свежая идея, появившаяся вместе с ростом длин контекста. Вместо весов делится входная последовательность: каждая GPU обрабатывает свой кусок токенов. TensorRT 11.0 поддерживает три стратегии для этого: AllGather KV (простейший вариант, каждая GPU собирает полные KV-кэши), Ring Attention (токены передаются по кольцу между GPU, хорошо масштабируется до 4 карт) и DeepSpeed Ulysses (минимальная латентность на экстремально длинных контекстах).

Бенчмарки на реальных моделях

Теория — хорошо, но цифры убедительнее. NVIDIA тестировала новый функционал на двух показательных пайплайнах: NVIDIA Cosmos 3 (генерация видео) и FLUX.1 (генерация изображений). Оба — тяжёлые диффузионные модели, именно тот класс задач, где нехватка памяти чувствуется острее всего.

Результаты интересные: DeepSpeed Ulysses показал наименьшую латентность при работе с экстремально длинными контекстами. Ring Attention тоже хорошо себя ведёт — особенно при масштабировании до 4 GPU. Выбор между ними зависит от конкретной задачи: если у вас длинные последовательности и нужна минимальная задержка — Ulysses, если важна предсказуемость масштабирования — Ring Attention.

Связка с Torch-TensorRT: PyTorch-модели без боли

Отдельная важная деталь: TensorRT 11.0 работает в паре с Torch-TensorRT, что позволяет конвертировать и разворачивать массивные PyTorch-модели напрямую, без переписывания кода. Это снимает главное возражение, которое обычно слышишь от команд разработки: «мы всё написали на PyTorch, переходить на TensorRT API — это месяцы работы». Теперь не нужно.

Для разработчиков медиапайплайнов это особенно актуально: можно взять готовую модель из HuggingFace или кастомный диффузионный пайплайн, скормить его Torch-TensorRT, получить оптимизированный TensorRT-движок с поддержкой нескольких GPU — и всё это без потери kernel fusions, memory planning и квантизации.

Что это значит для рынка

С практической точки зрения релиз TensorRT 11.0 закрывает один из самых болезненных gap'ов в экосистеме NVIDIA для инференса. До этого многие команды использовали vLLM или TGI для мульти-GPU деплоя языковых моделей — они справлялись, но для диффузионных моделей и медиагенерации готовых решений было мало.

Теперь у разработчиков есть единый инструмент, который работает и для LLM, и для диффузионных моделей, и масштабируется от edge-устройств (да, multi-device inference поддерживается и там) до серверных кластеров.

Конкуренты в этом пространстве — AMD ROCm с их MIGraphX и Intel OpenVINO — пока не могут предложить сопоставимую глубину интеграции распределённого инференса с собственным транспортным слоем. NCCL здесь играет роль серьёзного преимущества: годы оптимизаций под конкретное железо NVIDIA дают о себе знать.

Работает ли в России

TensorRT — это SDK, который скачивается с портала NVIDIA Developer. Формально доступ к порталу из России возможен, хотя ситуация периодически меняется. Если нужен VPN — он поможет. Сами библиотеки после скачивания работают локально, без обращения к серверам NVIDIA, так что ограничений на использование нет. Железо — отдельный вопрос, H100 и A100 в Россию официально не поставляются, но для тестирования подойдут и RTX-карты потребительского класса, поддержка которых в TensorRT полноценная.

TensorRT 11.0 с поддержкой мульти-GPU инференса доступен для скачивания на портале NVIDIA Developer прямо сейчас.

Источники

Все эти инструменты — уже на Genova-ai

Картинки, видео, музыка, голос и ИИ-чат в одном месте. Без VPN и зарубежных карт.

Картинки
Видео
Музыка
Голос
ИИ-чат
Попробовать бесплатно

Похожие новости