AI 引擎架构概述 - 2022.1 简体中文

AI 引擎内核编码 最佳实践指南 (UG1079)

Document ID
UG1079
Release Date
2022-05-25
Version
2022.1 简体中文

AI 引擎阵列由二维 AI 引擎拼块 (tile) 阵列构成,其中每个 AI 引擎拼块均包含一个 AI 引擎、存储器模块和拼块互连模块。AI 引擎拼块二维阵列概览如下图所示。

图 1. AI 引擎阵列

根据阵列中拼块的位置,存储器模块在其东西南北四向的相邻 AI 引擎之间共享。AI 引擎可访问其东西南北各存储器模块及其自己本身的存储器模块。AI 引擎通过专用存储器访问接口来访问这些相邻存储器模块,并且每次访问最大位宽为 256 位。AI 引擎与相邻 AI 引擎之间还可发送或接收级联串流数据。级联串流是水平方向从左到右或从右到左的单向串流,它通过卷绕方式移至下一行。AXI4互连模块可提供 AI 引擎拼块之间的串流连接,并在串流接口与存储器模块之间提供串流到存储器 (S2MM) 或存储器到串流 (MM2S) 连接。此外,互连模块还可连接到相邻互连模块,以便以类似网格的方式提供灵活的布线功能。

下图显示了单个 AI 引擎拼块的架构。

图 2. AI 引擎拼块详细信息

每个 AI 引擎拼块都有一个 AXI4-Stream 交换机,它属于完全可编程的 32 位 AXI4-Stream 交叉开关矩阵。它支持含有反压的电路切换和包切换串流。通过 MM2S DMA 和 S2MM DMA,AXI4-Stream 交换机可提供往来 AI 引擎数据存储器的串流访问。此交换机还包含 2 个深度为 16 且位宽为 33 位(32 位数据 + 1 位 TLAST)的 FIFO,这两个 FIFO 可链接在一起构成深度为 32 的 FIFO,方法是通过电路切换将其中一个 FIFO 的输出链接到另一个 FIFO 的输入。

如下图所示,AI 引擎属于高度优化的处理器,其特有的单指令流多数据流 (SIMD) 和超长指令字 (VLIW) 处理器包含 1 个标量单元、1 个矢量单元、2 个加载单元、1 个存储单元以及 1 个指令提取和解码单元。每条 VLIW 指令均可支持最多 2 次加载、1 次存储、1 次标量运算、1 次定点或浮点矢量运算和 2 条移动指令。

AI 引擎还有 3 个地址生成器单元 (AGU),可支持多种寻址模式。其中 2 个 AGU 专用于 2 个加载单元,1 个 AGU 专用于存储单元。

图 3. AI 引擎

如需了解有关矢量处理单元、AI 引擎存储器和 AI 引擎拼块接口的更多详细信息,请参阅以下章节。