GPUDirect от NVIDIA: архитектура прямого доступа к памяти GPU

Предыстория: почему возникла проблема передачи данных

Когда в высокопроизводительных вычислениях (HPC) графические процессоры начали вытеснять CPU в роли основного вычислительного ресурса, вместе с ними появилось новое узкое место — перемещение данных. Тысячи параллельных ядер GPU могут обрабатывать информацию с огромной скоростью, но традиционный путь данных выглядел следующим образом: накопитель → системная ОЗУ → буфер CPU → видеопамять GPU. Каждый промежуточный этап добавлял задержку и отнимал вычислительные ресурсы центрального процессора, который по сути выполнял роль курьера вместо того, чтобы управлять логикой приложения.

NVIDIA впервые представила GPUDirect в 2010 году именно как инструмент для устранения этих промежуточных операций. Технология позволила периферийным устройствам — сетевым картам, другим GPU, накопителям — обращаться к видеопамяти (VRAM) графических процессоров напрямую, минуя ОЗУ и вычислительные ядра CPU.

Сегодня, когда обучение нейронных сетей требует перемещения десятков гигабайт данных каждые секунды, GPUDirect превратилась из инструмента HPC-исследователей в фундаментальный компонент любого серьёзного AI-кластера. СервакМастер разбирает устройство технологии, её разновидности и практические требования к оборудованию.


Что такое GPUDirect: принцип работы

GPUDirect — это не одна функция, а программно-аппаратный стек NVIDIA, реализующий прямой DMA-доступ к видеопамяти GPU со стороны внешних устройств. Концептуально технология близка к RDMA (Remote Direct Memory Access): оба подхода направлены на исключение CPU из цепочки передачи данных, снижение задержек и максимизацию пропускной способности. Принципиальное различие в том, что GPUDirect специализируется именно на VRAM как источнике или получателе данных.

Когда приложению нужно передать данные, например от сетевого адаптера к GPU, драйверы CUDA совместно с RDMA-драйверами адаптера настраивают DMA-движок на прямой доступ к физическим адресам видеопамяти. Сетевой адаптер сам инициирует передачу через шину PCIe — без участия процессора и без буферизации в системной ОЗУ. Данные перемещаются по кратчайшему пути, и CPU остаётся свободным для управленческих задач.


Разновидности GPUDirect

Технология существует в трёх вариантах, каждый из которых оптимизирует конкретный сценарий передачи данных.

GPUDirect Peer-to-Peer (P2P)

Предназначен для систем с несколькими GPU — серверов и рабочих станций. Графические процессоры, установленные в одном узле, обмениваются данными напрямую через шину PCI Express, не задействуя ОЗУ. Данные перемещаются из VRAM одного GPU непосредственно в VRAM другого, что резко сокращает время внутриузловой передачи и снимает нагрузку с памяти хоста.

GPUDirect RDMA

Ключевая разновидность для многоузловых кластеров. GPUDirect RDMA позволяет RDMA-совместимым сетевым адаптерам — например, NVIDIA ConnectX с InfiniBand или Ethernet-адаптерам с протоколом RoCE — читать и записывать данные непосредственно в VRAM GPU через сеть. При этом системная ОЗУ не участвует в процессе ни на отправляющем, ни на принимающем узле. Технология является стандартным инструментом для межузлового обмена данными в AI-фермах и HPC-кластерах.

GPUDirect Storage (GDS)

Этот вариант устраняет промежуточные буферы CPU при доступе к данным на накопителях. Совместимые устройства хранения — прежде всего NVMe SSD и решения NVMe over Fabric — передают данные напрямую в VRAM, полностью обходя системные буферы. GDS особенно актуален при обучении крупных языковых и мультимодальных моделей: системе постоянно нужно загружать обучающие датасеты с накопителей, и скорость этой загрузки напрямую влияет на время тренировки.


Практические преимущества для AI и HPC

Применение GPUDirect приносит измеримые выгоды сразу по нескольким направлениям.

  • Снижение латентности. Исключение промежуточных буферов в памяти CPU сокращает задержки передачи данных до минимально достижимых значений, определяемых исключительно пропускной способностью PCIe и самих устройств.

  • Разгрузка CPU. Центральный процессор освобождается от рутинных операций копирования данных и может полностью сосредоточиться на управлении задачами, логике приложения и планировании.

  • Максимальная пропускная способность ввода/вывода. Прямой доступ к VRAM позволяет задействовать полную пропускную способность линий PCIe и сетевых интерфейсов.

  • Рост производительности кластера. Использование GPUDirect RDMA в многоузловых конфигурациях способно увеличить производительность межсерверных коммуникаций на 30–50% и выше относительно традиционных схем с промежуточной буферизацией.


Где применяется GPUDirect

Технология охватывает широкий круг задач в современных вычислительных инфраструктурах.

  • Суперкомпьютеры и HPC-кластеры. GPUDirect ускоряет межузловые коммуникации через MPI, повышая эффективность масштабных параллельных расчётов — вычислительной гидродинамики, молекулярной динамики, квантовой химии и других задач.

  • Обучение и инференс нейронных сетей. Технология обеспечивает быструю загрузку обучающих данных в GPU и ускоряет обмен градиентами и весовыми параметрами между ускорителями в гетерогенных многоузловых системах.

  • Обработка больших данных. В Big Data-системах GPUDirect сокращает время доступа к данным из хранилищ и ускоряет их последующую обработку на GPU.

  • Потоковая обработка. В ряде edge-решений технология используется для приёма данных от датчиков, камер и других источников непосредственно в VRAM GPU без лишних задержек.

  • Специализированные платформы NVIDIA. Системы серии DGX и HGX, а также кластерные конфигурации на базе InfiniBand и высокоскоростного Ethernet опираются на GPUDirect как на ключевой инструмент достижения максимальной производительности.


Требования к оборудованию и программному стеку

Для полноценной работы GPUDirect необходима согласованность как на аппаратном, так и на программном уровне.

Поддерживаемые GPU

GPUDirect поддерживается профессиональными ускорителями NVIDIA начиная с архитектуры Kepler (серия Tesla). Актуальные ускорители A100, L40, H100, H200, B200 и B300 полностью совместимы со всеми разновидностями технологии. Потребительские видеокарты GeForce поддержки актуальных версий GPUDirect не получают.

Сетевые адаптеры

GPUDirect RDMA требует адаптеров с поддержкой RDMA — например, NVIDIA ConnectX с InfiniBand или Ethernet-адаптеров с поддержкой RoCE. Необходимы актуальные RDMA-драйверы от производителя.

Программное обеспечение

Обязательна установка актуальных драйверов NVIDIA и CUDA Toolkit. Для сетевых сценариев потребуется CUDA-aware MPI в используемых библиотеках — Open MPI, MVAPICH2 и аналогах. Для GPUDirect Storage дополнительно нужны специальный GDS-драйвер и совместимая файловая система с поддержкой библиотеки libcufile.so.

Конфигурация PCIe и платформа

Система должна поддерживать P2P-коммуникации через PCIe и располагать достаточным количеством линий для прямого взаимодействия GPU и сетевого адаптера. Поддержка GPUDirect не привязана к конкретной версии PCIe — она определяется топологией подключения, поддержкой со стороны чипсета, CPU и настройками BIOS/UEFI.

Операционная система

GPUDirect поддерживается серверными дистрибутивами Linux: Ubuntu, Debian, CentOS, RHEL и другими. Windows Server формально совместим, однако встречается значительно реже из-за ограничений совместимости с CUDA и меньших возможностей тонкой настройки стека.


Итог

GPUDirect представляет собой один из ключевых технологических фундаментов, на которых строятся современные AI- и HPC-инфраструктуры. Без прямого обмена данными между GPU, сетевыми картами и накопителями масштабируемость вычислительных кластеров неизбежно упирается в жёсткие ограничения пропускной способности и латентности.

Три разновидности технологии — P2P, RDMA и Storage — в совокупности охватывают все сценарии передачи данных: внутриузловой обмен между GPU, межузловые коммуникации в кластере и высокоскоростной доступ к данным на накопителях. Результатом является минимальная латентность, высокая пропускная способность и разгруженный CPU.

Стоит учитывать, что GPUDirect — проприетарная разработка NVIDIA, ограниченная экосистемой продуктов компании. Для платформ AMD существует собственный аналог — ROCm RDMA, которому СервакМастер посвятил отдельный материал.

Если вас интересует подбор серверного оборудования с поддержкой GPUDirect — обратитесь к специалистам СервакМастер: мы поможем подобрать оптимальную конфигурацию под ваши задачи.