矢量处理单元 - 2022.1 简体中文

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

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

矢量单元包含一个定点单元(含 128 个 8 位定点乘法器)和一个浮点单元(含 8 个单精度浮点乘法器)。在定点乘法器与浮点乘法器之间共享矢量寄存器和置换网络。峰值性能取决于操作数所使用的数据类型的大小。下表提供了矢量处理器通过每条指令可执行的 MAC 运算数量。

表 1. AI 引擎矢量精度支持
X 操作数 Z 操作数 输出 MAC 数/时钟数
8 real 8 real 48 real 128
16 real 8 real 48 real 64
16 real 16 real 48 real 32
16 real 16 complex 48 complex 16
16 complex 16 real 48 complex 16
16 complex 16 complex 48 complex 8
16 real 32 real 48/80 real 16
16 real 32 complex 48/80 complex 8
16 complex 32 real 48/80 complex 8
16 complex 32 complex 48/80 complex 4
32 real 16 real 48/80 real 16
32 real 16 complex 48/80 complex 8
32 complex 16 real 48/80 complex 8
32 complex 16 complex 48/80 complex 4
32 real 32 real 80 real 8
32 real 32 complex 80 complex 4
32 complex 32 real 80 complex 4
32 complex 32 complex 80 complex 2
32 SPFP 32 SPFP 32 SPFP 8

X 操作数位宽为 1024 位,Z 操作数位宽为 256 位。就组件使用而言,以上表第一行为例。乘法器操作数来自相同的 1024 位和 256 位输入寄存器,但部分值广播至多个乘法器。其中包含 128 个 8 位单乘法器,结果均采用后加和累加方式添加到 16 或 8 条累加器通道内,每条通道位宽为 48 位。

要计算给定数据路径的最大性能,需要将每条指令的 MAC 数量乘以 AI 引擎内核的时钟频率。例如,对于 16 位输入矢量 X 和 Z,矢量处理器每条指令可执行 32 次 MAC 运算。使用速度等级最慢的器件的时钟频率即可得到:

32 次 MAC * 1 GHz 时钟频率 = 32 Giga 次 MAC 运算/秒