Проблема: CPU как узкое горлышко в GROMACS
Традиционный подход к обмену данными (halo exchange) в GROMACS на GPU-кластерах опирался на MPI, управляемый процессором. На каждом временном шаге (timestep) происходило до 12 блокирующих синхронизаций CPU-GPU при 3D-декомпозиции. Это занимало более 50% времени работы CPU и ограничивало скорость итераций, так как GPU простаивал в ожидании команд от хоста.
Решение: NVSHMEM и слияние ядер (Kernel Fusion)
Разработчики внедрили NVIDIA NVSHMEM для удаленного доступа к памяти, инициируемого непосредственно с GPU. Ключевые технические изменения:
- Удаление CPU из критического пути: Упаковка данных, передача и сигнализация теперь выполняются в одном слитом ядре (fused kernel).
- Зависимостно-ориентированное слияние: Индексы атомов разделены на независимые и зависимые подмножества. Это позволило сократить количество запусков ядер за шаг с 6 до 1.
- Тонкая настройка сигналов: Вместо грубых барьеров используются per-pulse сигналы, позволяющие накладывать коммуникацию на вычисления.
Технические детали транспорта
Система автоматически выбирает оптимальный путь передачи данных в зависимости от топологии:
| Тип соединения | Механизм передачи | Особенности |
|---|---|---|
| NVLink (GPU-GPU) | Direct stores via nvshmem_ptr | Использование system-scope release stores для максимальной скорости |
| RDMA (InfiniBand) | NVSHMEM put operations | Для узлов без прямой NVLink связи |
| Общий случай | NVIDIA Hopper TMA engine | Эффективные массовые удаленные записи (bulk remote stores) |
Результаты бенчмарков
Тестирование проводилось на суперкомпьютере NVIDIA Eos и кластерах NVIDIA GB200 NVL72. Результаты показали:
- Ускорение сильного масштабирования (strong scaling) intra- и inter-node до 2x по сравнению с GPU-aware MPI.
- Особенно заметен прирост для систем, ограниченных задержками (latency-bound).
- Время шага симуляции сократилось до диапазона 100–200 микросекунд на множестве GPU.
Значение для HPC
Хотя метод разработан для GROMACS, архитектура применима к любым HPC-приложениям с паттернами обмена границами (halo exchange). Однако авторы отмечают, что стандартизация нативных GPU-примитивов коммуникации остается открытой задачей для индустрии.
Источник: NVIDIA dev blog ↗
