Coverage for src/flag_gems/runtime/backend/_ascend/ops/pow.py: 0%
33 statements
« prev ^ index » next coverage.py v7.6.9, created at 2026-03-13 10:08 +0800
« prev ^ index » next coverage.py v7.6.9, created at 2026-03-13 10:08 +0800
1import logging
3import triton
4import triton.language as tl
6from flag_gems.utils import pointwise_dynamic, tl_extra_shim
8_pow = tl_extra_shim.pow
10logger = logging.getLogger(f'flag_gems.runtime._ascend.ops.{__name__.split(".")[-1]}')
13@pointwise_dynamic(promotion_methods=[(0, 1, "BOOL_TO_LONG")])
14@triton.jit
15def pow_func(x, exponent):
16 return _pow(x.to(tl.float32), exponent)
19def pow_tensor_tensor(A, exponent):
20 logger.debug("GEMS_ASCEND POW_TENSOR_TENSOR")
21 return pow_func(A, exponent)
24def pow_tensor_tensor_(A, exponent):
25 logger.debug("GEMS_ASCEND POW_TENSOR_TENSOR_")
26 return pow_func(A, exponent, out0=A)
29@pointwise_dynamic(is_tensor=[True, False], promotion_methods=[(0, 1, "BOOL_TO_LONG")])
30@triton.jit
31def pow_func_tensor_scalar(x, exponent):
32 return _pow(x.to(tl.float32), exponent)
35def pow_tensor_scalar(A, exponent):
36 logger.debug("GEMS_ASCEND POW_TENSOR_SCALAR")
37 return pow_func_tensor_scalar(A, exponent)
40def pow_tensor_scalar_(A, exponent):
41 logger.debug("GEMS_ASCEND POW_TENSOR_SCALAR_")
42 return pow_func_tensor_scalar(A, exponent, out0=A)
45@pointwise_dynamic(is_tensor=[False, True], promotion_methods=[(0, 1, "BOOL_TO_LONG")])
46@triton.jit
47def pow_func_scalar_tensor(x, exponent):
48 return _pow(x.to(tl.float32), exponent)
51def pow_scalar(A, exponent):
52 logger.debug("GEMS_ASCEND POW_SCALAR")
53 return pow_func_scalar_tensor(A, exponent)