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 и зарубежных карт.

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

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