MAC 内部函数 - 2023.2 简体中文

AI 引擎内核与计算图编程指南 (UG1079)

Document ID
UG1079
Release Date
2023-12-04
Version
2023.2 简体中文

MAC 内部函数可在来自 2 个缓冲器(X 和 Z 缓冲器)的数据之间执行矢量乘法和累加运算,并附带其他参数和选项以支持各项灵活性功能特性(矢量中的数据选择、输出通道数)和可选功能特性(不同输入数据大小、前加等)。此外还有一个额外的输入缓冲器,即 Y 缓冲器,其中的值先以来自 X 缓冲器的值执行前加,然后再执行乘法。来自内部函数的结果会添加到累加器。

内部函数的参数允许从不同输入缓冲器灵活选择每个通道和列的数据,并且全部遵循相同的参数模式。缓冲器中的起点是由 (x/y/z) 起始参数提供的,该参数会选择第一行和第一列的第一个函数。为了给每个通道提供灵活性,(x/y/z) offset 参数为将添加到起点的每个通道都提供了偏移值。最后,(x/y/z) step 参数根据先前位置定义了每个列之间的单步进入数据选择。值得注意的是,如果在内部函数中未指定 ystep,那么它将与 xstep 对称。

x/y 缓冲器与 z 缓冲器的主置换粒度分别为 32 位和 16 位。复数被视为置换的单个实体(例如,对于置换,cint16 被视为 32 位)。zstart 参数必须为编译时间常量。x/y 中的 8 位和 16 位置换粒度以及 z 中的 8 位置换粒度都存在某些限制,在本节末尾对此进行了解释。后续章节涵盖了不同的数据宽度,并对这些数据宽度上 MAC 内部函数的结果进行了解释。