3. DPU核心概念

在DPU/GPU与NVLink集群互联的体系里,DPU(Data Processing Unit)不是一块“更快的网卡”,而是一台可编程的、以数据为中心的片上基础设施处理器。它把原本由主机CPU承担的网络协议处理、存储虚拟化、安全策略执行、遥测采集等任务下沉到独立芯片上完成,使主机CPU与GPU能够专注于计算本身。理解DPU,需要从定义、组成、卸载能力、网络与存储加速、安全隔离五个维度建立整体认知。

一、DPU的定义与定位

DPU是一种集成了多核ARM CPU、可编程数据平面加速器、高速网络接口、PCIe主机接口与专用存储/安全引擎的SoC。它在服务器中通常以PCIe卡或板载芯片形式出现,对主机呈现为“网卡+存储控制器+安全设备”的复合体,但内部拥有独立的操作系统与运行时环境。

从集群视角看,DPU承担三种角色:

  • 数据面执行者:完成报文解析、转发、封装、加解密、压缩等线速处理。
  • 控制面代理:运行轻量OS,承载网络策略、存储客户端、监控Agent。
  • 主机卸载引擎:把vSwitch、TCP/IP、NVMe、TLS等负载从CPU/GPU侧移走。
一句话概括:DPU是“以数据为中心的基础设施处理器”,让计算节点只做计算,让基础设施任务在DPU上独立完成。

二、DPU的典型组成

不同厂商实现细节不同,但主流DPU的组成高度一致,可归纳为以下模块:

组成模块典型能力在集群中的作用
多核ARM CPU子系统运行Linux/RTOS,承载控制面与Agent策略下发、存储客户端、遥测汇聚
可编程数据平面P4/eSwitch流水线,线速报文处理vSwitch卸载、VXLAN/Geneve封装
高速网络接口25/100/200/400GbE,RoCEv2东西向流量、GPU通信承载
PCIe主机接口PCIe Gen4/Gen5 x16与CPU/GPU主机互联
存储加速引擎NVMe-oF、压缩、校验、加密远程存储接入与本地盘虚拟化
安全与隔离引擎IPsec/MACsec、TLS、可信启动多租户隔离、零信任执行点
遥测与时间同步PTP、sFlow、带内遥测性能观测与故障定位

这些模块并非简单堆叠,而是通过片上网络(NoC)与共享内存协同工作,形成“控制面在ARM、数据面在加速器”的分工结构。

DPU 内部组成与外部连接关系 DPU SoC 多核 ARM CPU 控制面 / 轻量 OS 策略与 Agent 可编程数据平面 P4 / eSwitch 线速转发与封装 安全隔离引擎 IPsec / MACsec / TLS 可信启动与租户隔离 存储加速引擎 NVMe-oF / 压缩 / 校验 本地盘虚拟化 片上网络 NoC + 共享内存 控制面与数据面协同 主机 CPU / GPU PCIe Gen4/5 高速网络 100/200/400GbE 远程存储 NVMe-oF 目标 安全域 / 租户 策略执行点 主机侧卸载:vSwitch、TCP/IP、NVMe、TLS、遥测 网络侧加速:RoCEv2、VXLAN/Geneve、IPsec/MACsec 存储侧加速:NVMe-oF、压缩、校验、加密 安全侧隔离:多租户、零信任、可信启动

三、卸载能力:DPU的核心价值

DPU的“卸载”不是单一功能,而是一组按层次划分的能力集合。理解卸载,关键是看它把哪些CPU周期从主机上拿走了。

  1. 网络卸载:vSwitch、OVS、VXLAN/Geneve封装、ACL、NAT、负载均衡。主机CPU不再逐包处理,DPU数据平面线速完成。
  2. 传输卸载:TCP/IP、RoCEv2、拥塞控制、重传与乱序处理。GPU通信的RDMA语义由DPU直接承载。
  3. 存储卸载:NVMe-oF Initiator、块设备虚拟化、压缩、校验、加密。主机看到的是本地盘,实际由DPU访问远端存储。
  4. 安全卸载:IPsec、MACsec、TLS、防火墙、微隔离策略。加解密在DPU硬件引擎完成,不占用主机算力。
  5. 管理卸载:遥测采集、日志、时间同步、健康检查。监控Agent运行在DPU的ARM核上。
卸载的收益可以用一个简单指标衡量:主机CPU占用率下降幅度。在典型云原生节点上,vSwitch与存储栈可占用20%~40%的CPU,DPU卸载后这部分算力可归还给业务与GPU。

四、网络与存储加速机制

网络加速的核心是“数据平面可编程”。DPU用P4或eSwitch流水线描述报文处理逻辑,匹配字段、执行动作、转发端口都在硬件中并行完成。对于GPU集群,DPU还承担RoCEv2的封装与拥塞管理,使GPU之间的AllReduce、AllGather流量走RDMA路径,降低延迟与CPU参与。

存储加速的核心是“协议转换与本地呈现”。DPU作为NVMe-oF Initiator,把远端NVMe目标映射为本地块设备;同时可对数据做压缩与校验,减少网络带宽与存储开销。主机侧无需安装复杂存储客户端,驱动与协议栈都在DPU上运行。

# 典型DPU存储卸载配置示意(以NVMe-oF为例)
dpu-cli storage attach \
  --transport rdma \
  --target 10.20.30.40 \
  --subnqn nqn.2024-01.com.example:storage \
  --local-dev /dev/nvme0n1 \
  --compress lz4 \
  --checksum crc32c

# 主机侧看到的是本地NVMe设备
lsblk | grep nvme0n1
# nvme0n1  259:0  0  3.5T  0 disk

五、安全隔离机制

DPU位于主机与网络之间,天然是策略执行点。它的安全隔离能力体现在三个层面:

  • 租户隔离:不同租户的流量在DPU数据平面按VNI、MAC、IP等字段分流,互不可见。
  • 零信任执行:每个连接都经过身份校验与策略匹配,DPU不信任主机内部流量。
  • 可信启动与度量:DPU自身固件与OS经过签名校验,启动链可度量,防止固件被篡改。
常见误区:认为“DPU卸载后主机就完全安全了”。实际上DPU是执行点,策略仍需由控制面统一下发;若策略配置错误,DPU会忠实执行错误规则。安全隔离的有效性取决于策略正确性与DPU自身可信性。

六、案例与复盘:GPU集群中的DPU部署

在一个8节点GPU训练集群中,每节点配置2块GPU、1块DPU。部署前,主机CPU约35%用于vSwitch与存储栈;部署后,这部分负载迁移到DPU,主机CPU释放给数据加载与GPU调度。GPU之间的NCCL通信通过DPU的RoCEv2路径承载,DPU同时执行租户隔离策略,确保多租户训练任务互不干扰。

复盘要点:

  1. 先确认DPU固件与驱动版本匹配,避免卸载路径回退到主机软件栈。
  2. 用ethtool -S与DPU遥测确认卸载是否真正生效,而非仅配置成功。
  3. 安全策略变更需在DPU控制面灰度下发,避免一次性全量导致业务中断。
  4. 监控DPU ARM核与数据平面资源,防止控制面Agent过载影响数据面。

DPU的定义、组成、卸载能力、网络与存储加速、安全隔离机制,共同构成了它在GPU/NVLink集群中的基础设施地位。它不是替代CPU,而是把“数据搬运与策略执行”从计算路径中剥离,让GPU与CPU各自回归最擅长的任务。