Унификация стека: конец эпохи разрозненных реализаций
До появления DOCA GPUNIO каждая библиотека коммуникаций (NCCL, NVSHMEM, UCX) поддерживала собственные, изолированные реализации GDA-KI (GPU Direct Async Kernel-Initiated). Это приводило к дублированию кода и фрагментации оптимизаций. Новая архитектура объединяет эти усилия в единый фундамент, позволяя библиотекам использовать общую базу для управления сетевыми объектами (Ethernet, RDMA, Verbs, DMA) напрямую с GPU, оставляя CPU только на пути управления (control path).
Два формата поставки: SDK и Open Source
Решение поставляется в двух вариантах, обеспечивая гибкость для разных сценариев:
- DOCA SDK (Superset): Полная версия с поддержкой Ethernet, DMA и расширенных возможностей RDMA. Требует проприетарного стека DOCA.
- Open Source GPUNetIO: Легковесная версия, сфокусированная на Verbs. Ключевая особенность — runtime detection. Библиотека может автоматически обнаружить наличие DOCA SDK и через
dlopenвызвать закрытые функции SDK, если они доступны, или работать в автономном режиме на базе open-source кода.
Интеграция с ключевыми библиотеками
Архитектура GPUNetIO уже интегрирована в основные инструменты экосистемы NVIDIA, что подтверждается конкретными версиями и результатами:
| Библиотека / Технология | Версия / Контекст | Результат внедрения GPUNetIO |
|---|---|---|
| NCCL (GIN) | v2.27+ | Использует GPUNetIO Verbs как бэкенд. Позволяет device-side коллективным алгоритмам напрямую управлять RDMA-операциями. |
| NVSHMEM | v3.7 | Внедрен транспорт на базе GPUNetIO. Снижена сложность реализации при сохранении производительности IBGDA. Улучшено масштабирование CTA и QP для малых сообщений. |
| NVQLink | IGX Thor + Blackwell + ConnectX-7 | Использует GPU RoCE Transceiver operator. Достигнута минимальная задержка round-trip на уровне ~2.6 мкс для квантово-классических рабочих процессов. |
Программная модель: CPU vs GPU
Модель программирования четко разделяет задачи:
- CPU (Control Path): Инициализация устройств, выделение памяти и создание сетевых транспортных объектов (например, через
mlx5dvдля Verbs). - GPU (Data Path): CUDA-ядра получают доступ к этим объектам и инициируют передачу данных, полностью исключая CPU из критического пути выполнения прикладных задач.
Почему это важно
Для разработчиков AI и HPC-приложений это означает переход от модели «CPU управляет сетью» к модели «GPU управляет сетью». Это критически важно для сценариев реального времени, распределенного обучения и квантовых вычислений, где каждая микросекунда задержки и каждый такт CPU, отвлеченный на сетевой стек, являются потерей производительности. Единая база GPUNetIO ускоряет внедрение инноваций: улучшение, сделанное для NCCL, мгновенно становится доступным для NVSHMEM и других библиотек.
Источник: NVIDIA dev blog ↗
