DPU
Data Processing Unit — программируемый процессор на сетевой карте, который берёт на себя сеть, хранилище и безопасность, разгружая центральный процессор.
Что такое DPU
DPU (Data Processing Unit, процессор обработки данных) — специализированный процессор, размещённый на плате с сетевым интерфейсом. Его задача — снять с центрального процессора сервера всю инфраструктурную работу: обработку сетевого трафика, доступ к хранилищу, шифрование, изоляцию арендаторов.
Расшифровка буквально: Data Processing Unit. По аналогии с CPU (Central Processing Unit) и GPU (Graphics Processing Unit) — отсюда формула «третий процессор в сервере»: CPU считает логику приложения, GPU считает математику, DPU двигает данные.
Смысл идеи проще, чем звучит. В облачном сервере значительная доля процессорных тактов уходит не на задачи клиента, а на обслуживание самой инфраструктуры: виртуальные коммутаторы, туннели, шифрование дисков, правила фаервола. Это называют «налогом дата-центра» — вы купили ядра, но часть из них работает на гипервизор, а не на вас. DPU переносит эту работу на отдельный чип.
Как устроен DPU
| Блок | Назначение |
|---|---|
| ARM-ядра | Полноценный процессор со своей ОС (обычно Linux) прямо на карте |
| Сетевой контроллер | Собственно сетевой адаптер, высокоскоростной Ethernet или InfiniBand |
| Аппаратные ускорители | Шифрование, сжатие, разбор пакетов, регулярные выражения |
| Память и PCIe | Собственная RAM и связь с хостом |
Ключевая деталь: DPU — это самостоятельный компьютер внутри вашего сервера. У него своя ОС, свой IP, свой administrative domain. Хост может даже не иметь к нему доступа — и это не баг, а главная фича.
Основные представители: NVIDIA BlueField (ARM-ядра плюс сетевой контроллер до 400 Гбит/с в третьем поколении), AMD Pensando, Intel IPU, Marvell OCTEON. Программируется BlueField через SDK DOCA — примерно как GPU программируется через CUDA.
SmartNIC и DPU: в чём разница
Термины путают, и часто заслуженно — граница размытая. Практическое различие:
- SmartNIC — сетевая карта с аппаратной разгрузкой отдельных функций (контрольные суммы, VXLAN, RDMA). Умеет то, что в неё зашили. Часто построена на FPGA или ASIC.
- DPU — карта с полноценными процессорными ядрами и собственной ОС. На ней можно запускать произвольный софт: агента мониторинга, фаервол, инициатор хранилища.
Грубо: SmartNIC — ускоритель, DPU — сервер на плате.
Что на него выносят
- Сеть: виртуальные коммутаторы (OVS), туннели VXLAN, правила VPC, балансировка, VLAN — целиком в железо карты.
- Хранилище: NVMe over Fabrics. Хост видит локальный диск, физически данные лежат в сетевой СХД, а трансляцию делает DPU.
- Безопасность: шифрование трафика на скорости линии, микросегментация, проверка целостности. Изоляция настоящая — правила живут вне досягаемости скомпрометированного хоста.
- Виртуализация: часть работы гипервизора переезжает на карту, освобождая ядра под виртуальные машины клиентов.
Зачем DPU в облаке и GPU-кластерах
Экономика мультитенантности. Провайдеру нужно продавать ядра клиентам, а не тратить их на собственный оверхед. Классический пример — AWS Nitro: перенос виртуализации и сети на выделенные карты, после которого хост почти целиком отдаётся клиенту. Именно этот подход и сделал концепцию мейнстримом.
Безопасность. Когда управляющий слой живёт на DPU, а не на хосте, клиент может получить хоть root на голом железе — до сети и хранилища провайдера он не дотянется. Для bare-metal-аренды это ключевой момент.
GPU-кластеры. При обучении на многих узлах сеть — узкое место. DPU обслуживает RDMA-трафик и подкачку датасетов, не отвлекая CPU узла. Логика простая: если процессор занят разбором пакетов, он не успевает готовить батчи, и дорогие ускорители простаивают.
Нужен ли DPU вам
Честный ответ: скорее всего, вы им уже пользуетесь, не зная об этом. DPU — компонент инфраструктуры провайдера, а не то, что докупают к арендованному серверу. Работая на современном облачном инстансе, вы почти наверняка получаете сеть и диски через DPU.
Осмысленно думать о нём в двух случаях: если вы строите собственное облако и считаете, сколько ядер съедает инфраструктура, либо если проектируете кластер на сотни GPU, где сеть становится главной статьёй расходов.
Связанные термины
- CPU — процессор, который DPU разгружает
- GPU — третий участник связки CPU/GPU/DPU
- FPGA — технология, из которой выросли первые SmartNIC
- Сетевой адаптер — то, чем DPU является в базовой своей функции
- Мультитенантность — задача, ради которой DPU и придумали
- GPU-кластер — сценарий, где разгрузка сети даёт прямой выигрыш
Готовы запустить GPU-задачу?
Запустить GPU-сервер