triangle_solve_tile

void ckernel::triangle_solve_tile_init()

Please refer to documentation for any_init.

template<DataFormat L_FORMAT = DataFormat::Float32, bool L_NEGATED = false, bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::triangle_solve_tile(uint32_t cb_l, uint32_t l_tile_idx, uint32_t idst_in, uint32_t idst_out)

Solves L X = RHS for one 32x32 tile by forward substitution on the SFPU, where L is unit lower-triangular (the diagonal is implicit and never read). L is read in place from L1, tile l_tile_idx of cb_l, and never occupies DST; RHS and X use two distinct DST tiles, and X is left in idst_out in standard tile layout. cb_l must be resident (cb_wait_front done) when the call is made; on return the unpack thread has waited for the math thread to finish reading it, so the tile may be popped or overwritten right after this call. Requires a prior call to triangle_solve_tile_init. The DST register buffer must be in the acquired state via tile_regs_acquire, and the kernel must run with 32-bit destination accumulation. Blackhole only: on other architectures a call does not compile. This call is blocking and is only available on the compute engine.

Return value: None

Param Type Name

Template L_FORMAT

Template L_NEGATED

Template is_fp32_dest_acc_en

Function cb_l

Function l_tile_idx

Function idst_in

Function idst_out