Silu
产品支持情况
产品 |
是否支持 |
|---|---|
√ |
|
√ |
|
x |
|
√ |
|
x |
|
x |
功能说明
按元素做Silu运算,计算公式如下:


函数原型
1 2 | template <typename T, bool isReuseSource = false> __aicore__ inline void Silu(const LocalTensor<T>& dstLocal, const LocalTensor<T>& srcLocal, uint32_t dataSize) |
参数说明
参数名 |
描述 |
|---|---|
T |
操作数的数据类型。 |
isReuseSource |
是否允许修改源操作数。该参数预留,传入默认值false即可。 |
参数名 |
输入/输出 |
描述 |
|---|---|---|
dstLocal |
输出 |
目的操作数。 类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。 |
srcLocal |
输入 |
源操作数。 类型为LocalTensor,支持的TPosition为VECIN/VECCALC/VECOUT。 源操作数的数据类型需要与目的操作数保持一致。 |
dataSize |
输入 |
实际计算数据元素个数。 |
返回值说明
无
约束说明
- 操作数地址偏移对齐要求请参见通用说明和约束。
- 不支持源操作数与目的操作数地址重叠。
- 当前仅支持ND格式的输入,不支持其他格式。
调用示例
1 2 3 4 5 6 7 | #include "kernel_operator.h" AscendC::LocalTensor<srcType> dstLocal = outQueue.AllocTensor<srcType>(); AscendC::LocalTensor<srcType> srcLocal = inQueueX.DeQue<srcType>(); AscendC::(dstLocal, srcLocal, dataSize); outQueue.EnQue<srcType>(dstLocal); inQueueX.FreeTensor(srcLocal); |
结果示例如下:
1 2 | 输入数据(srcLocal):[3.304723 1.04788 ... -1.0512] 输出数据(dstLocal): [3.185546875 0.77587890625 ... -0.272216796875] |
父主题: Silu接口