对每行元素进行乘积归约。
设 [object Object] 且 [object Object]。对于 [object Object]:
同步形式:
[object Object]
降级可能引入内部临时tile;C++内建函数需要显式的 [object Object] 操作数。
[object Object]
[object Object]
声明于 [object Object]:
[object Object]
[object Object]
[object Object]和[object Object]必须均为[object Object]。[object Object]必须使用标准ND布局:行主且非分形([object Object]、[object Object])。[object Object]必须使用以下两种非分形布局之一:- ND布局(
[object Object]、[object Object]),或 - 列数严格为1的DN布局(
[object Object]、[object Object]、[object Object])。
- ND布局(
[object Object]和[object Object]的元素类型必须一致。- 运行时有效区域检查:
[object Object][object Object][object Object]
- 内建接口签名要求显式传入
[object Object]操作数。
- 支持的元素类型:
[object Object]、[object Object]、[object Object]、[object Object]。 - 当前检查到的实现路径中,实际受约束的是
[object Object]和[object Object]。 - 当前实现路径中,没有额外要求
[object Object]必须满足特定shape/layout约束。
[object Object] 被使用作为逐行累加器缓冲区。对于每一行,实现将 [object Object] 初始化为 [object Object],然后使用 [object Object] 将 [object Object] 数据的各个块乘入 [object Object]。所有块累加完成后,标量模式流水线读取 [object Object] 元素并计算最终乘积。
[object Object]必须与[object Object]/[object Object]具有相同的元素类型。[object Object]大小:至少1行和[object Object]列(即1个块:[object Object]/[object Object]为8个元素,[object Object]/[object Object]为16个元素)。- 安全的默认设置:将
[object Object]设为与[object Object]相同的形状。
[object Object] 被接口接受但Ascend 950PR/Ascend 950DT实现不使用。Ascend 950PR/Ascend 950DT后端使用基于向量寄存器的归约([object Object] + [object Object] 进行树形归约),不需要暂存Tile存储。[object Object] 仅为了与Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品的API兼容性而保留在C++内建接口签名中。
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]