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的组成高度一致,可归纳为以下模块:
| 组成模块 | 典型能力 | 在集群中的作用 |
|---|---|---|
| 多核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的“卸载”不是单一功能,而是一组按层次划分的能力集合。理解卸载,关键是看它把哪些CPU周期从主机上拿走了。
- 网络卸载:vSwitch、OVS、VXLAN/Geneve封装、ACL、NAT、负载均衡。主机CPU不再逐包处理,DPU数据平面线速完成。
- 传输卸载:TCP/IP、RoCEv2、拥塞控制、重传与乱序处理。GPU通信的RDMA语义由DPU直接承载。
- 存储卸载:NVMe-oF Initiator、块设备虚拟化、压缩、校验、加密。主机看到的是本地盘,实际由DPU访问远端存储。
- 安全卸载:IPsec、MACsec、TLS、防火墙、微隔离策略。加解密在DPU硬件引擎完成,不占用主机算力。
- 管理卸载:遥测采集、日志、时间同步、健康检查。监控Agent运行在DPU的ARM核上。
四、网络与存储加速机制
网络加速的核心是“数据平面可编程”。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经过签名校验,启动链可度量,防止固件被篡改。
六、案例与复盘:GPU集群中的DPU部署
在一个8节点GPU训练集群中,每节点配置2块GPU、1块DPU。部署前,主机CPU约35%用于vSwitch与存储栈;部署后,这部分负载迁移到DPU,主机CPU释放给数据加载与GPU调度。GPU之间的NCCL通信通过DPU的RoCEv2路径承载,DPU同时执行租户隔离策略,确保多租户训练任务互不干扰。
复盘要点:
- 先确认DPU固件与驱动版本匹配,避免卸载路径回退到主机软件栈。
- 用
ethtool -S与DPU遥测确认卸载是否真正生效,而非仅配置成功。 - 安全策略变更需在DPU控制面灰度下发,避免一次性全量导致业务中断。
- 监控DPU ARM核与数据平面资源,防止控制面Agent过载影响数据面。
DPU的定义、组成、卸载能力、网络与存储加速、安全隔离机制,共同构成了它在GPU/NVLink集群中的基础设施地位。它不是替代CPU,而是把“数据搬运与策略执行”从计算路径中剥离,让GPU与CPU各自回归最擅长的任务。