tvm_tirx.backend.cuda.script.tile.ewise

Contents

tvm_tirx.backend.cuda.script.tile.ewise#

tvm_tirx.backend.cuda.script.tile.ewise(function, dst, *inputs, scope='thread', **kwargs)#

Inline a scalar TIRx function at every explicit register coordinate.

Tensor inputs have exactly the destination’s group and repeat axes. Scalar inputs are broadcast; tensor broadcasting is expressed with a zero-stride view. There is no implicit cast, vectorization, memory staging, or barrier.

Parameters:
  • function (tvm_tirx.tirx.Function or tvm_tirx.ir.LambdaExpr) – A typed scalar function with a scalar return on every path. Its parameter types must match the inputs, and its result type must match the destination.

  • dst (TensorRegion) – Destination registers, owned by the executing threads and without overlapping storage positions.

  • *inputs (TensorRegion or Expr) – Register regions with the same group and repeat shape as dst, or scalar expressions broadcast to every invocation.

  • scope (str, optional) – Execution scope; defaults to "thread". Group coordinates follow the same scope rules as tvm_tirx.backend.cuda.script.tile.apply().

  • **kwargs – Generic IR construction keywords, such as loc. There are no instruction-specific parameters.

Returns:

call (tvm_tirx.ir.Call) – The scalar function application over the explicit register coordinates.

Notes

Unlike apply, ewise has no trailing instruction atom: every coordinate after the group prefix selects one scalar invocation. See the scalar function contract for restrictions and the Tile Operands and Execution guide for an example.