Единая среда для CPU и GPU
NVIDIA Holoscan 5 — это не просто обновление, а архитектурный сдвиг. Платформа объединяет задачи управления с низкой задержкой (low-latency control) и обработки данных с высокой пропускной способностью (high-throughput perception) в единой модели программирования. Ключевая особенность — поддержка как CPU, так и GPU-нагрузок в рамках одного графа выполнения. Это позволяет разработчикам избегать фрагментации кода и использовать одни и те же операторы (operators) и порты для разных типов вычислений.
Технические детали: Pinocchio, QDD-приводы и 400 Гц
В качестве демонстрационного сценария выбрана задача компенсации гравитации (gravity compensation). Это критически важный тест для роботов, работающих рядом с людьми (cobots), так как он требует мгновенного расчета инверсной динамики. Система работает по следующему циклу:
- Частота опроса: Состояние суставов считывается с частотой 400 Гц.
- Вычисления: Используется библиотека Pinocchio с алгоритмом Рекурсивного Ньютона-Эйлера (RNEA) для расчета моментов сил.
- Аппаратная часть: Робот-рука Seeed Studio reBot Arm B601-DM с квази-прямоприводными (QDD) актуаторами, обеспечивающими высокую полоса пропускания момента.
- Управление: Команды отправляются через библиотеку motorbridge.
Результаты профилирования: снижение задержки в 9.6 раза
Одной из главных проблем в робототехнике является джиттер (вариация задержки). NVIDIA использует концепцию partitions (разделов), которая группирует операторы на одном потоке, избегая межпоточных передач данных. Для оптимизации использовалось привязывание (pinning) управляющего раздела к выделенному ядру CPU.
Профилирование через Nsight Systems с встроенными аннотациями NVTX показало впечатляющие результаты по снижению p99.99 задержки:
| Реализация | Метрика | Результат оптимизации |
|---|---|---|
| C++ | Снижение p99.99 latency | ~5x |
| Python | Снижение p99.99 latency | ~9.6x |
Также внедрены очереди типа drop-oldest, которые предотвращают накопление устаревших данных, что критично для стабильности системы в реальном времени.
Поддерживаемое железо и доступность
Решение протестировано и работает на следующих платформах:
- NVIDIA Jetson Orin Nano
- NVIDIA Jetson Thor
- x86 системы с Ubuntu 24.04
Разработчики могут скачать Holoscan 5 SDK и пройти обучающий курс по созданию графа компенсации гравитации. Код доступен как на Python (3.12+), так и на C++, что делает платформу доступной для широкого круга инженеров.
Источник: NVIDIA dev blog ↗
