行指数差运算:计算exp(src0 - src1),其中src1为每行标量。
设 [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][object Object]、[object Object]、[object Object]必须是以下之一:[object Object]、[object Object]。- Tile形状/布局约束(编译时):
[object Object]。 - 模式1:
[object Object]预期提供每行一个标量(即,其有效形状必须覆盖[object Object]个值)。 - 模式2:
[object Object]预期提供每行32字节数据。 - 确切的布局/分形约束是目标特定的;参见
[object Object]下的后端头文件。
C++ API提供了显式传入 [object Object] 的重载。该重载仅支持模式1(ColMajor扩展操作数,每行标量)。内部实现中,[object Object] 由 [object Object] 后接 [object Object] 实现,因此tmp Tile用于SUB步骤的广播缓冲区。
- Atlas A2/A3 训练系列产品/Atlas A2/A3 推理系列产品:tmp Tile作为
[object Object]步骤的广播缓冲区使用。ColMajor扩展操作数的每行标量值通过[object Object]指令广播到tmp缓冲区,为每行创建一个32字节块,然后在减法运算中作为扩展操作数使用。[object Object]指令的repeat stride为8个块(256字节),每个repeat处理8行。最小tmp大小计算:- 公共参数:
[object Object],[object Object]。
- 当
[object Object]时: - 当
[object Object]时:- 操作采用循环方式,每次循环最多30个repeat(240行)。tmp缓冲区在各循环间复用,每次循环需要:
- 对于任何模式1调用,一个紧凑的形状无关上界为 8KB(8192Byte)。
- 不带
[object Object]的3参数重载支持模式1和模式2。对于模式1,使用内部8KB缓冲区([object Object])。对于模式2,不需要广播缓冲区。
- 公共参数:
- Ascend 950PR/Ascend 950DT:
[object Object]Tile被接受但不使用([object Object])。Ascend 950PR/Ascend 950DT硬件通过[object Object]指令的广播模式原生支持行广播,因此不需要临时缓冲区。
参见 [object Object] 和 [object Object] 中的相关示例。
[object Object]
[object Object]
[object Object]