3. Kria硬件架构与AI推理加速基础

Kria SOM 之所以能在十几瓦功耗内跑出可用的 AI 推理性能,根源在于它把“通用处理 + 可编程逻辑 + 专用 AI 引擎”三层算力塞进了同一颗芯片。理解这条硬件链路,是后续做模型部署、性能调优和瓶颈定位的前提。本节围绕 Zynq UltraScale+ MPSoC 的异构结构、DPU IP 核的工作方式、PL 的角色、DDR 带宽约束以及一次推理的数据流路径展开。

一、Zynq UltraScale+ MPSoC:四类处理单元的异构分工

Kria K26 的核心是 Zynq UltraScale+ MPSoC(ZU5EV 级别),它并非单一 CPU,而是由四个功能域组成:

  • PS(Processing System):包含四核 ARM Cortex-A53(应用处理单元 APU)和双核 Cortex-R5F(实时处理单元 RPU)。A53 主频约 1.5 GHz,负责运行 Ubuntu/PetaLinux、加载模型、调度推理任务;R5F 用于硬实时控制,例如电机闭环、传感器同步。
  • PL(Programmable Logic):UltraScale+ 可编程逻辑,约 256K 逻辑单元、1248 个 DSP48E2 切片、5.1 Mb BRAM。DPU、视频流水线、自定义前处理都实现在这里。
  • DPU(Deep Learning Processing Unit):以 IP 核形式例化在 PL 中的 AI 推理加速器,是本节重点。
  • DDR 控制器与内存:PS 侧和 PL 侧通过 AXI 接口共享 DDR4 内存,K26 典型配置为 4 GB、64 位位宽。

关键点在于:A53、R5F、DPU、PL 逻辑并不是各自独立工作,而是通过 AXI 总线矩阵和 DDR 控制器共享同一片内存。这意味着任何一方的带宽占用都会影响其他方,这是后面分析推理延迟时必须记住的约束。

二、DPU IP 核:AI 推理的实际执行者

DPU 是 Xilinx(AMD)提供的卷积神经网络加速 IP,Kria 上常见的是 DPUCZDX8G 系列,按并行度分为 B512、B1024、B2048、B4096 等型号,数字代表每个时钟周期可处理的乘累加规模。以 B4096 为例,它在 PL 中例化约 4096 个 DSP 等效算力单元,配合片上 BRAM 缓存权重与特征图。

DPU 的执行模型是“指令驱动 + 硬件流水”:编译器(Vitis AI)把量化后的模型编译成 DPU 指令序列,运行时由驱动把指令、权重、输入张量写入 DDR 指定地址,DPU 通过 AXI Master 读取数据、执行卷积/池化/激活等算子,再把结果写回 DDR。DPU 内部有多个并行计算引擎(如卷积引擎、深度卷积引擎、池化引擎),它们按指令调度协同工作。

需要明确的是:DPU 只负责算子级加速,模型解析、前后处理、任务调度仍由 A53 上的 CPU 完成。因此端到端延迟 = CPU 前处理 + DPU 推理 + CPU 后处理,三者缺一不可。

三、PL 可编程逻辑:不只是“放 DPU 的容器”

PL 在 AI 推理系统中有三个实际作用:

  1. 承载 DPU:DPU 本身是 PL 上的 IP,其并行度、频率(典型 300–500 MHz)直接决定算力上限。
  2. 实现前处理流水线:摄像头输入的图像缩放、色彩空间转换(如 YUV→RGB)、归一化,可以用 HLS 或 RTL 在 PL 中做成流水线,避免占用 CPU 周期。例如把 1920×1080 缩放到 640×640 的 bilinear 缩放,在 PL 中可做到每周期输出一个像素。
  3. 自定义算子与接口:当模型含 DPU 不支持的算子,或需要低延迟传感器接口(如 MIPI、LVDS)时,PL 提供扩展空间。

PL 与 PS 之间通过 AXI HP(High Performance)端口连接,典型配置为多个 128 位或 256 位 AXI 接口,这是数据进出 PL 的物理通道。

四、DDR 内存带宽:最容易被忽视的瓶颈

DPU 的算力再高,也要靠 DDR 喂数据。K26 的 DDR4 理论带宽约为 64 位 × 2400 MT/s ÷ 8 ≈ 19.2 GB/s。但这是理论峰值,实际可用带宽受以下因素影响:

  • AXI 总线位宽与频率:若 PL 侧 AXI 为 128 位 @ 300 MHz,单端口理论约 4.8 GB/s。
  • 读写竞争:DPU 读权重、读输入、写输出,同时 CPU 也在访问内存,带宽被分摊。
  • 访问模式:连续大块传输效率高,随机小颗粒访问效率低。

一个实用的估算示例:假设某模型每帧需要读取权重 8 MB、输入 1.2 MB、输出 1.2 MB,合计约 10.4 MB。若 DPU 实际可用带宽为 6 GB/s,则单帧数据搬运时间约 10.4 MB ÷ 6 GB/s ≈ 1.73 ms。若模型计算时间为 2 ms,则数据搬运与计算可部分重叠,但若带宽降到 3 GB/s,搬运时间升至 3.47 ms,就会成为主导瓶颈。这说明:调优时不能只看 DPU 利用率,还要看 DDR 带宽占用。

五、AI 推理数据流路径

把上述部件串起来,一次典型推理的数据流如下:

  1. 摄像头或文件通过 MIPI/PCIe/USB 进入 PS,CPU 将原始帧写入 DDR 的输入缓冲区。
  2. 若启用 PL 前处理,数据从 DDR 经 AXI HP 读入 PL,完成缩放/归一化后写回 DDR 的另一块缓冲区。
  3. CPU 触发 DPU 推理,DPU 通过 AXI Master 从 DDR 读取输入张量和权重,执行卷积等算子,将输出写回 DDR。
  4. CPU 读取输出张量,做后处理(如 NMS、解码),得到最终结果。

这条路径中,DDR 是四次经过的公共资源,AXI 是 PL 与 DDR 之间的闸门。理解这一点,就能解释为什么“DPU 利用率不高但帧率上不去”——很可能是前处理或后处理占用了 CPU,或者 DDR 带宽被视频流水线抢占。

Kria Zynq UltraScale+ MPSoC AI 推理数据流与硬件分区 PS 处理系统 四核 Cortex-A53 @1.5GHz 模型加载 / 调度 / 前后处理 双核 Cortex-R5F 实时控制 / 传感器同步 DDR4 控制器 4GB / 64bit / ~19.2GB/s 理论 PL 可编程逻辑 DPU IP 核 B4096 并行度 卷积/池化/激活 前处理流水线 缩放 / YUV→RGB 归一化 自定义算子 HLS / RTL MIPI / LVDS 接口 AXI HP 接口(128/256 bit @ 300MHz) PL ↔ DDR 数据通道,单端口约 4.8 GB/s 共享 DDR4 内存 权重 / 输入张量 / 输出张量 / 视频帧 读写竞争 · 带宽分摊 一次推理的数据流路径 ① 采集 MIPI/USB → DDR ② 前处理 PL 缩放/归一化 ③ DPU 推理 读权重/输入→写输出 ④ 后处理 NMS/解码 (CPU) ⑤ 结果 输出/上报 带宽估算示例 10.4MB/帧 ÷ 6GB/s ≈ 1.73ms 带宽降至3GB/s → 3.47ms 成瓶颈

六、从架构到调优的对应关系

把上面的结构落到实际调优,可以形成一张对应表:

观察到的现象可能对应的硬件环节可检查的指标
DPU 利用率低但帧率上不去 CPU 前/后处理耗时过长 A53 各核占用率、前后处理函数耗时
DPU 利用率高但延迟波动大 DDR 带宽竞争 AXI HP 端口带宽、DDR 读写吞吐
推理结果正确但吞吐不达标 DPU 并行度或频率不足 DPU 配置型号、PL 时钟频率
视频输入丢帧 PL 前处理流水线或 MIPI 带宽 前处理 FIFO 溢出、MIPI 时钟