reg_api
-
void ckernel::tile_regs_acquire()
-
Acquire an exclusive lock on the DST register for the MATH thread. This register is an array of 16 tiles of 32x32 elements each. This is a blocking function, i.e. this function will wait until the lock is acquired.
NOTE: On Quasar with unpack-to-dest the UNPACK thread also opens its DST section here. Every unpack-to-dest copy_tile / copy_block of the section must come after this call and before tile_regs_commit, each at its own DST index; MATH does not start on the section before that commit.
-
void ckernel::tile_regs_wait()
-
Acquire an exclusive lock on the DST register for the PACK thread. It waits for the MATH thread to commit the DST register. This is a blocking function, i.e. this function will wait until the lock is acquired.
-
template<bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::tile_regs_commit()
-
Release lock on DST register by MATH thread. The lock had to be previously acquired with tile_regs_acquire.
NOTE: On Quasar with unpack-to-dest the UNPACK thread also closes its DST section here, handing it to MATH.
-
template<bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::tile_regs_release()
-
Release lock on DST register by PACK thread. The lock had to be previously acquired with tile_regs_wait.