warp.tile_upper_solve_inplace#

warp.tile_upper_solve_inplace(
U: Tile[Float, tuple[int, int]],
z: Tile[Float, tuple[int, ...]],
) → None#
  • Kernel: true
  • Python: false
  • Differentiable: false

Solve U x = z in place for an upper-triangular U, overwriting z with x.

Behaves like tile_upper_solve() – only the upper triangle of U is read, the right-hand side may be 1D or 2D, and the same dtype and backend rules apply – except that the solution overwrites z instead of being returned.

This is a cooperative operation, so every thread in the block must call it.

This in-place variant avoids allocating shared memory for a separate output.

Parameters:
  • U – A square, non-singular, upper-triangular tile with shape=(M, M).

  • z – The right-hand side, a tile with shape=(M,) or shape=(M, NRHS), overwritten by the solution x.

See tile_upper_solve() for usage details, and tile_lower_solve() for an example.