内核编码限制 - 2022.1 简体中文

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

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

在此示例中,要计算 128 个输出值,需执行总计 1024 次 int16 x int16 乘法。由于在 AI 引擎内每个周期可以执行 32 次 16 位乘法,因此内核的计算限制如下所示。

Compute bound = 32 cycles / invocation

矩阵 B 可存储在矢量寄存器中,因为它只有 16*16 位 = 256 位。无需为每次 MAC 运算从 AI 引擎数据存储器或拼块接口中提取该矢量。考虑到计算所需的数据“a”,总计需要从存储器中提取 64*8*2=1024 字节。鉴于 AI 引擎允许每个周期执行 2 次 256 位(32 字节)加载,内核的存储器限制如下所示。

Memory bound = 1024 / (2*32) = 16 cycles / invocation

可见,计算限制大于存储器限制。因此,矢量化可用于在矢量处理器中达成 MAC 运算的理论限制。