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-27 02:51 +0800

1import logging 

2 

3import triton 

4import triton.language as tl 

5 

6from flag_gems.utils import pointwise_dynamic, tl_extra_shim 

7 

8_pow = tl_extra_shim.pow 

9 

10logger = logging.getLogger(f'flag_gems.runtime._ascend.ops.{__name__.split(".")[-1]}') 

11 

12 

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) 

17 

18 

19def pow_tensor_tensor(A, exponent): 

20 logger.debug("GEMS_ASCEND POW_TENSOR_TENSOR") 

21 return pow_func(A, exponent) 

22 

23 

24def pow_tensor_tensor_(A, exponent): 

25 logger.debug("GEMS_ASCEND POW_TENSOR_TENSOR_") 

26 return pow_func(A, exponent, out0=A) 

27 

28 

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) 

33 

34 

35def pow_tensor_scalar(A, exponent): 

36 logger.debug("GEMS_ASCEND POW_TENSOR_SCALAR") 

37 return pow_func_tensor_scalar(A, exponent) 

38 

39 

40def pow_tensor_scalar_(A, exponent): 

41 logger.debug("GEMS_ASCEND POW_TENSOR_SCALAR_") 

42 return pow_func_tensor_scalar(A, exponent, out0=A) 

43 

44 

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) 

49 

50 

51def pow_scalar(A, exponent): 

52 logger.debug("GEMS_ASCEND POW_SCALAR") 

53 return pow_func_scalar_tensor(A, exponent)