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