01Результаты бенчмарка: 2.5x прирост
Тестирование проводилось на системе с 4 GPU NVIDIA B200. Целевая метрика — 50 токенов в секунду (TPS) на пользователя при задержке (ITL) 20 мс. Это стандарт для интерактивных приложений. | Конфигурация | Пропускная способность (Output Tokens/s) | Примечание | | :--- | :--- | :--- | | **Baseline (NIM Off)** | 718 tok/s | Базовая open-source сборка без оптимизаций NIM | | **NIM 2.0.12 (Optimized)** | 1,997 tok/s | Полный стек оптимизаций (2.5x ускорение) | Как видно из таблицы, использование оптимизированного стека NIM позволяет обслуживать почти в 3 раза больше запросов при той же задержке. Это напрямую переводится в экономию GPU-ресурсов или рост числа одновременных пользователей.💡
Важно для практиков. Прирост достигается не одной «волшебной кнопкой», а комплексом взаимодействующих оптимизаций: кэширование префиксов, спекулятивное декодирование и тонкая настройка планировщика.
02Архитектура оптимизаций NIM 2.0.12
Прирост производительности Nemotron 3 Ultra на B200 обеспечивается несколькими слоями оптимизации, которые работают в связке: 1. **Автонастроенные ядра (Autotuned Kernels):** Ядра для MoE (Mixture of Experts) и Mamba адаптированы под архитектуру Blackwell. Это обеспечивает эффективное использование гибридной архитектуры модели. 2. **Тензорная параллельность (Tensor Parallelism):** Модель распределяется между 4 GPU. Используется экспертно-ориентированное выполнение (expert-aware execution) для повышения утилизации слоев MoE. 3. **Кэширование префиксов и состояния (Prefix & State Reuse):** * *Prefix Caching:* Избегает повторного вычисления повторяющегося контекста. * *Partial-Prefix Matching:* Позволяет использовать кэш, даже если совпадает только часть префикса. * *Mamba State Cache:* Специфичная настройка кэша состояния для архитектуры Mamba. 4. **Планировщик и память (Scheduler & Memory Tuning):** Настроены лимиты одновременных последовательностей, размер батча и выделение памяти GPU, чтобы держать больше работы в полете, не превышая целевую задержку. 5. **MTP Speculative Decoding:** Multi-Token Prediction (MTP) ускоряет генерацию, предсказывая несколько токенов за шаг. Эффективность зависит от коэффициента принятия (acceptance rate) и свободного места в памяти.03Как запустить оптимизированный NIM
Для воспроизведения результатов необходимо использовать образ NIM версии 2.0.12 или новее. Ключевой момент — выбор правильного профиля модели (`NIM_MODEL_PROFILE`), который учитывает тип GPU (B200) и стратегию ускорения. Для агентных нагрузок на 4x B200 рекомендуется профиль `vllm-nvidia-b200-nvfp4-tp4-pp1-throughput-90.0` с включенным спекулятивным декодированием. Вот готовая команда для запуска:terminalbash
export NGC_API_KEY=
export LOCAL_NIM_CACHE=$HOME/.cache/nim
export NIM_TAG=2.0.12
export NIM_MODEL_PROFILE=vllm-nvidia-b200-nvfp4-tp4-pp1-throughput-90.0
mkdir -p "$LOCAL_NIM_CACHE"
# Авторизация в nvcr.io
echo "$NGC_API_KEY" | docker login nvcr.io \
--username '$oauthtoken' --password-stdin
# Запуск контейнера
docker run --gpus all --shm-size=16GB \
-e NGC_API_KEY \
-e NIM_MODEL_PROFILE \
-e NIM_SPECDEC_ENABLE=1 \
-v "$LOCAL_NIM_CACHE:/opt/nim/.cache" \
-p 8000:8000 \
nvcr.io/nim/nvidia/nemotron-3-ultra-550b-a55b:$NIM_TAG ⚠️
Внимание по VRAM и памяти. Для работы с 4x B200 и моделью Nemotron 3 Ultra (550B параметров) критически важно правильно настроить `--shm-size` (в примере 16GB) и убедиться, что у вас достаточно VRAM для хранения KV-кэша при высокой параллельности. Неправильный размер разделяемой памяти может привести к ошибкам при инициализации тензорной параллельности.
04Бенчмарк своей нагрузки с AIPerf
Официальные цифры — это ориентир. Чтобы понять, сколько пользователей выдержит ваша инфраструктура, нужно прогнать реальный трафик. NVIDIA предлагает инструмент AIPerf для реплея нагрузок. Используйте трейс в формате Mooncake (JSONL), который репрезентативен для вашего приложения. Ниже приведен скрипт для проверки различных уровней конкурентности (concurrency):terminalbash
for C in 1 4 8 16 32 64; do
aiperf profile \
--model nvidia/nemotron-3-ultra-550b-a55b \
--endpoint-type chat --streaming \
--url localhost:8000 \
--input-file ./agentic-trace.jsonl \
--custom-dataset-type mooncake_trace \
--no-fixed-schedule \
--concurrency "$C"
done05Кому подойдёт / что запустится
* **Для кого:** Команды, разворачивающие агентные AI-приложения (Agentic AI) с длинным контекстом и переиспользованием префиксов. Особенно актуально для высоконагруженных сервисов, где важна стоимость владения (TCO) на GPU. * **Железо:** Требуется инфраструктура NVIDIA Blackwell (B200) для раскрытия полного потенциала оптимизаций ядер. На предыдущих поколениях (H100/H200) прирост будет, но иначе. * **Модель:** Nemotron 3 Ultra (550B параметров). Модель требует значительных ресурсов, поэтому оптимизации кэширования и параллельности здесь критичны. * **Альтернатива:** Если у вас нет 4x B200, можно попробовать запустить NIM на меньшем кластере, но пропускная способность будет линейно зависеть от количества GPU и эффективности их взаимодействия. Для тестов без локального железа можно использовать хостинговый API от NVIDIA.Источник: NVIDIA Developer ↗
