Coverage for src/flag_gems/runtime/backend/_sunrise/ops/logical_and.py: 0%
23 statements
« prev ^ index » next coverage.py v7.6.9, created at 2026-06-10 07:09 +0800
« prev ^ index » next coverage.py v7.6.9, created at 2026-06-10 07:09 +0800
1import logging
3import triton
4import triton.language as tl
6from flag_gems.utils import pointwise_dynamic
7from flag_gems.utils.pointwise_dynamic import CodeGenConfig
9logger = logging.getLogger(__name__)
12MAX_GRID_SIZES = (65535, 65535, 65535)
13config = CodeGenConfig(
14 max_tile_size=2048,
15 max_grid_size=MAX_GRID_SIZES,
16 max_num_warps_per_cta=32,
17 prefer_block_pointer=True,
18 prefer_1d_tile=True,
19)
22@pointwise_dynamic(promotion_methods=[(0, 1, "ALWAYS_BOOL")], config=config)
23@triton.jit
24def logical_and_func(x, y):
25 return x.to(tl.int1).logical_and(y.to(tl.int1))
28def logical_and(A, B):
29 logger.debug("GEMS LOGICAL_AND")
30 return logical_and_func(A, B)
33@pointwise_dynamic(promotion_methods=[(0, 1, "ALWAYS_BOOL")])
34@triton.jit
35def logical_and_func_(x, y):
36 return tl.where((x != 0) & (y != 0), 1, 0)
39def logical_and_(A, B):
40 logger.debug("GEMS LOGICAL_AND_")
41 logical_and_func_(A, B, out0=A)
42 return A