tilelang.language.math_intrinsics

Common math intrinsics exposed on the TileLang language surface.

函式

ieee_add(x, y[, rounding_mode])

IEEE-compliant addition with specified rounding mode

ieee_sub(x, y[, rounding_mode])

IEEE-compliant subtraction with specified rounding mode

ieee_mul(x, y[, rounding_mode])

IEEE-compliant multiplication with specified rounding mode

ieee_fmaf(x, y, z[, rounding_mode])

IEEE-compliant fused multiply-add with specified rounding mode

ieee_frcp(x[, rounding_mode])

IEEE-compliant reciprocal with specified rounding mode

ieee_fsqrt(x[, rounding_mode])

IEEE-compliant square root with specified rounding mode

ieee_frsqrt(x)

IEEE-compliant reciprocal square root (round to nearest only)

ieee_fdiv(x, y[, rounding_mode])

IEEE-compliant division with specified rounding mode

fadd2(x, y)

Packed FP32x2 add.

fmul2(x, y)

Packed FP32x2 multiply.

fma2(x, y, z)

Packed FP32x2 fused multiply-add (x * y + z).

Module Contents

tilelang.language.math_intrinsics.ieee_add(x, y, rounding_mode='rn')

IEEE-compliant addition with specified rounding mode

參數:
  • x (PrimExpr) -- First operand.

  • y (PrimExpr) -- Second operand.

  • rounding_mode (str, optional) -- Rounding mode: 'rn' (round to nearest), 'rz' (round toward zero), 'ru' (round toward positive infinity), 'rd' (round toward negative infinity). Default is 'rn'.

回傳:

result -- The result.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_sub(x, y, rounding_mode='rn')

IEEE-compliant subtraction with specified rounding mode

參數:
  • x (PrimExpr) -- First operand.

  • y (PrimExpr) -- Second operand.

  • rounding_mode (str, optional) -- Rounding mode: 'rn', 'rz', 'ru', 'rd'. Default is 'rn'.

回傳:

result -- The result.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_mul(x, y, rounding_mode='rn')

IEEE-compliant multiplication with specified rounding mode

參數:
  • x (PrimExpr) -- First operand.

  • y (PrimExpr) -- Second operand.

  • rounding_mode (str, optional) -- Rounding mode: 'rn', 'rz', 'ru', 'rd'. Default is 'rn'.

回傳:

result -- The result.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_fmaf(x, y, z, rounding_mode='rn')

IEEE-compliant fused multiply-add with specified rounding mode

參數:
  • x (PrimExpr) -- First operand.

  • y (PrimExpr) -- Second operand.

  • z (PrimExpr) -- Third operand (addend).

  • rounding_mode (str, optional) -- Rounding mode: 'rn', 'rz', 'ru', 'rd'. Default is 'rn'.

回傳:

result -- The result of x * y + z.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_frcp(x, rounding_mode='rn')

IEEE-compliant reciprocal with specified rounding mode

參數:
  • x (PrimExpr) -- Input operand.

  • rounding_mode (str, optional) -- Rounding mode: 'rn', 'rz', 'ru', 'rd'. Default is 'rn'.

回傳:

result -- The result of 1/x.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_fsqrt(x, rounding_mode='rn')

IEEE-compliant square root with specified rounding mode

參數:
  • x (PrimExpr) -- Input operand.

  • rounding_mode (str, optional) -- Rounding mode: 'rn', 'rz', 'ru', 'rd'. Default is 'rn'.

回傳:

result -- The result of sqrt(x).

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_frsqrt(x)

IEEE-compliant reciprocal square root (round to nearest only)

參數:

x (PrimExpr) -- Input operand.

回傳:

result -- The result of 1/sqrt(x).

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.ieee_fdiv(x, y, rounding_mode='rn')

IEEE-compliant division with specified rounding mode

參數:
  • x (PrimExpr) -- Dividend.

  • y (PrimExpr) -- Divisor.

  • rounding_mode (str, optional) -- Rounding mode: 'rn', 'rz', 'ru', 'rd'. Default is 'rn'.

回傳:

result -- The result of x/y.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.fadd2(x, y)

Packed FP32x2 add.

Lowers to PTX add.rn.f32x2 on supported NVIDIA architectures/toolchains, and falls back to per-lane scalar operations otherwise.

參數:
  • x (PrimExpr) -- First operand. Must be dtype float32x2.

  • y (PrimExpr) -- Second operand. Must be dtype float32x2.

回傳:

result -- A float32x2 result.

回傳型別:

PrimExpr

tilelang.language.math_intrinsics.fmul2(x, y)

Packed FP32x2 multiply.

Lowers to PTX mul.rn.f32x2 on supported NVIDIA architectures/toolchains, and falls back to per-lane scalar operations otherwise.

參數:
  • x (tvm.tir.PrimExpr)

  • y (tvm.tir.PrimExpr)

回傳型別:

tvm.tir.PrimExpr

tilelang.language.math_intrinsics.fma2(x, y, z)

Packed FP32x2 fused multiply-add (x * y + z).

Lowers to PTX fma.rn.f32x2 on supported NVIDIA architectures/toolchains, and falls back to per-lane scalar operations otherwise.

參數:
  • x (tvm.tir.PrimExpr)

  • y (tvm.tir.PrimExpr)

  • z (tvm.tir.PrimExpr)

回傳型別:

tvm.tir.PrimExpr