
TileElemWiseSilu【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass代码位置[TOC]功能说明TileElemWiseSilu实现 epilogue 阶段的 SiLUSigmoid Linear Unit激活函数也称为 Swish 函数。对 UB 上的输入 Tensor 逐元素计算x * sigmoid(x)并输出。适用范围所有架构无架构特化风格非 TLA直接操作AscendC::LocalTensor公式SiLU(x) x / (1 e^(-x))实现通过组合Muls取负、Exp、Adds、Div指令完成模板原型template class ArchTag_, // 架构标签 class ComputeType_, // 计算数据类型含 Element uint32_t COMPUTE_LENGTH_ // 计算长度element 个数 struct TileElemWiseSilu;模板参数说明ArchTag_架构标签ComputeType_计算数据类型通过ComputeType_::Element获取元素类型COMPUTE_LENGTH_计算长度调用接口void operator()( AscendC::LocalTensorElementCompute const dstLocal, // 目的 UB LocalTensor AscendC::LocalTensorElementCompute const srcLocal // 源 UB LocalTensor )参数说明dstLocal目标 UB Tensor被覆盖存放 SiLU(x) 结果srcLocal源 UB Tensor输入值 x调用示例#include catlass/epilogue/tile/tile_elemwise_silu.hpp using namespace Catlass::Epilogue::Tile; using ComputeType Gemm::GemmTypehalf, layout::RowMajor; constexpr uint32_t COMPUTE_LENGTH 128 * 256; using SiluOp TileElemWiseSiluArch::AtlasA2, ComputeType, COMPUTE_LENGTH; AscendC::LocalTensorhalf dstLocal; AscendC::LocalTensorhalf srcLocal; SiluOp siluOp; siluOp(dstLocal, srcLocal);【免费下载链接】catlass本项目是CANN的算子模板库提供NPU上高性能矩阵乘及其相关融合类算子模板样例。项目地址: https://gitcode.com/cann/catlass创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考