Разработка локальных AI-приложений требует не только мощного железа, но и правильной связки форматов и рантаймов. Проект Do Inference Now (DIN) Deploy от NVIDIA предлагает open-source коллекцию C++-примеров, которые объединяют ONNX Runtime с провайдером выполнения NVIDIA TensorRT RTX. Это решение позволяет конвертировать модели из Hugging Face в ONNX-артефакты и запускать инференс нативно на Windows и Linux, обеспечивая ускорение на GPU RTX.
01Архитектура: Разделение экспорта и деплоя
Ключевая особенность DIN Deploy — четкое разделение этапов. Сначала используется Python-скрипт для скачивания чекпоинта с Hugging Face и конвертации его в ONNX. Затем, в C++-приложении, используется стандартный API ONNX Runtime (ORT). Это означает, что специфичный для вендора код (CUDA, ядра TensorRT) изолирован в опциональных путях ускорения. Основной код приложения остается кросс-платформенным.
Для работы с данными применяется copy tensor API ORT, что упрощает управление локальностью данных без необходимости писать специфичный код для каждой GPU-архитектуры. В версии ONNX Runtime 1.25+ добавлена поддержка графического интероперабельности (Vulkan/DirectX), что критично для задач генерации изображений, где нужно интегрировать ресурсы GPU напрямую в рендер-пайплайн.
02Поддерживаемые модели и задачи
Репозиторий покрывает три основных направления: распознавание речи (ASR), интерактивную сегментацию и генерацию изображений.
- ASR (Automatic Speech Recognition): Поддерживаются офлайн-транскрипция (OpenAI Whisper) и стриминг (NVIDIA Nemotron ASR Streaming, NVIDIA Parakeet TDT).
- Computer Vision: Интерактивная сегментация через Meta SAM 2.1 (маскирование изображений и видео).
- Image Generation: Генерация по промптам с помощью FLUX.2-klein-4B с использованием графического интероперабельности.
03Бенчмарки: DGX Spark (GPU vs CPU)
Производительность измерялась на платформе DGX Spark. Результаты показывают колоссальный прирост скорости при использовании TensorRT RTX по сравнению с CPU. Для аудио результаты приведены в кратности к реальному времени (real-time), для видео — в FPS.
| Модель | GPU (DGX Spark) | CPU (DGX Spark) |
|---|---|---|
| openai/whisper-large-v3-turbo | 58.5x | 3.8x |
| nvidia/nemotron-3.5-asr-streaming-0.6b | 39.01x | 3.24x |
| nvidia/parakeet-tdt-0.6b-v3 | 206.41x | 14.44x |
| facebook/sam2.1-hiera-base-plus | 38.3 FPS | 0.5 FPS |
Обратите внимание на Parakeet TDT: ускорение в 206 раз относительно реального времени делает стриминговую обработку аудио практически мгновенной. SAM 2.1 на GPU выдает 38.3 FPS против 0.5 FPS на CPU, что критично для интерактивных приложений.
04Как запустить: CMake и настройка
Проект использует CMake presets для Windows, Linux, x86-64 и Arm64. По умолчанию CMake скачивает и собирает ONNX Runtime и TensorRT RTX. Ниже приведен пример базового процесса сборки и запуска.
Создание билд-директории и конфигурация проекта:
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=ReleaseЗапуск сборки (пример для 4 потоков):
cmake --build . --config Release --parallel 4После сборки вы получаете CLI-утилиту. Для запуска инференса с использованием TensorRT RTX обычно требуется указать путь к экспортированной ONNX-модели и флаг активации провайдера. Пример запуска (синтаксис зависит от конкретного примера в репозитории, но общая логика такова):
./din_deploy_sample --model_path ./models/whisper.onnx --provider tensorrtДля FLUX.2 ключевым моментом является использование квантованных моделей. После конвертации через NVIDIA Model Optimizer, вы получаете ONNX-файл, который работает быстрее на Tensor Cores, но требует той же самой C++-обертки.
05Кому подойдёт / что запустится
- Разработчики desktop-приложений: Если вам нужно встроить AI (распознавание речи, сегментацию) в C++/C# приложение на Windows/Linux без тяжелых зависимостей Python.
- Интеграторы Edge-AI: Для Arm64-платформ (Jetson, Snapdragon) проект предоставляет пресеты, что упрощает портирование серверных решений на edge-устройства.
- Геймдев и Real-time Graphics: Благодаря Vulkan/DirectX интероперабельности в FLUX.2 и SAM 2.1, разработчики игр могут использовать AI-модели как часть графического пайплайна (например, для динамического маскирования или генерации текстур на лету).
Для старта клонируйте репозиторий Do Inference Now (DIN) Deploy и используйте CMake presets. Это наиболее прямой путь к нативному, ускоренному TensorRT инференсу на потребительских и профессиональных GPU NVIDIA.
Источник: NVIDIA Developer ↗
