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 推理系统中有三个实际作用:
- 承载 DPU:DPU 本身是 PL 上的 IP,其并行度、频率(典型 300–500 MHz)直接决定算力上限。
- 实现前处理流水线:摄像头输入的图像缩放、色彩空间转换(如 YUV→RGB)、归一化,可以用 HLS 或 RTL 在 PL 中做成流水线,避免占用 CPU 周期。例如把 1920×1080 缩放到 640×640 的 bilinear 缩放,在 PL 中可做到每周期输出一个像素。
- 自定义算子与接口:当模型含 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 推理数据流路径
把上述部件串起来,一次典型推理的数据流如下:
- 摄像头或文件通过 MIPI/PCIe/USB 进入 PS,CPU 将原始帧写入 DDR 的输入缓冲区。
- 若启用 PL 前处理,数据从 DDR 经 AXI HP 读入 PL,完成缩放/归一化后写回 DDR 的另一块缓冲区。
- CPU 触发 DPU 推理,DPU 通过 AXI Master 从 DDR 读取输入张量和权重,执行卷积等算子,将输出写回 DDR。
- CPU 读取输出张量,做后处理(如 NMS、解码),得到最终结果。
这条路径中,DDR 是四次经过的公共资源,AXI 是 PL 与 DDR 之间的闸门。理解这一点,就能解释为什么“DPU 利用率不高但帧率上不去”——很可能是前处理或后处理占用了 CPU,或者 DDR 带宽被视频流水线抢占。
六、从架构到调优的对应关系
把上面的结构落到实际调优,可以形成一张对应表:
| 观察到的现象 | 可能对应的硬件环节 | 可检查的指标 |
|---|---|---|
| DPU 利用率低但帧率上不去 | CPU 前/后处理耗时过长 | A53 各核占用率、前后处理函数耗时 |
| DPU 利用率高但延迟波动大 | DDR 带宽竞争 | AXI HP 端口带宽、DDR 读写吞吐 |
| 推理结果正确但吞吐不达标 | DPU 并行度或频率不足 | DPU 配置型号、PL 时钟频率 |
| 视频输入丢帧 | PL 前处理流水线或 MIPI 带宽 | 前处理 FIFO 溢出、MIPI 时钟 |