Power
【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss
功能说明
幂运算。
所属头文件链接
/include/operators/math_expression.h
函数原型
template<auto scalarValue, typename T> struct OpPower : UnaryOp<T> template<auto scalarValue, typename T> __host_aicore__ constexpr auto Power(Expression<T> lhs) template<auto scalarValue, typename T> __host_aicore__ constexpr auto Power(T &&lhs)参数说明
| 参数名称 | 参数类型 | 输入/输出 | 数据类型 | 参数说明 | 默认值 |
|---|---|---|---|---|---|
| scalarValue | 模板参数 | 输入 | NA | Power操作的幂次 | NA |
| T | 模板参数 | 输入 | NA | Power操作数的数据类型 | NA |
| lhs | 函数形参 | 输入 | NA | Power操作数,当类型是Expression<T>时,是张量,当类型是T时,是标量 | NA |
返回值说明
| 返回值数据类型 | 返回值说明 |
|---|---|
| Expression > | 返回一个OpPower的表达式 |
约束说明
NA
使用示例
template <typename InputDtype, typename OutputDtype> struct Config { struct Compute { template <template <typename> class Tensor> __host_aicore__ constexpr auto Compute() const { auto in = Atvoss::PlaceHolder<1, Tensor<InputDtype>, Atvoss::ParamUsage::IN>(); auto out = Atvoss::PlaceHolder<2, Tensor<OutputDtype>, Atvoss::ParamUsage::OUT>(); // 🔥🔥🔥 使用示例 🔥🔥🔥 return (out = Power<2>(in)); // 🔥🔥🔥 使用示例 🔥🔥🔥 }; }; }; template <typename InputDtype, typename OutputDtype> struct Config { struct Compute { template <template <typename> class Tensor> __host_aicore__ constexpr auto Compute() const { auto scalar = Atvoss::PlaceHolder<1, InputDtype, Atvoss::ParamUsage::IN>(); auto out = Atvoss::PlaceHolder<2, Tensor<OutputDtype>, Atvoss::ParamUsage::OUT>(); // 🔥🔥🔥 使用示例 🔥🔥🔥 return (out = Power<2>(scalar)); // 🔥🔥🔥 使用示例 🔥🔥🔥 }; }; };【免费下载链接】atvossATVOSS(Ascend C Templates for Vector Operator Subroutines)是一套基于Ascend C开发的Vector算子库,致力于为昇腾硬件上的Vector类融合算子提供极简、高效、高性能、高拓展的编程方式。项目地址: https://gitcode.com/cann/atvoss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考