reconfig_data_format

template<SrcOrder src_order = SrcOrder::Regular, bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format(const uint32_t icb0_new_operand, const uint32_t icb1_new_operand)

Reconfigures the srcA and srcB unpacker/math data formats for new operands, always re-deriving the int8/unsigned state from the new formats. Operands are passed in natural (icb0, icb1) order; src_order selects how they map onto SrcA/SrcB (SrcOrder::Reverse maps icb0 -> SrcB and icb1 -> SrcA, so matmul can pass its operands unswapped, matching compute_kernel_hw_startup). Set is_tile_dim_reconfig_en when the new tile/face geometry differs from the current one.

template<SrcOrder src_order = SrcOrder::Regular, bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format(const uint32_t icb0_old_operand, const uint32_t icb0_new_operand, const uint32_t icb1_old_operand, const uint32_t icb1_new_operand)

Conditional variant of reconfig_data_format: reconfigures only the sources whose format differs between the old and new operand. Operands are in natural (icb0, icb1) order and honor src_order as above.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srca(const uint32_t srca_new_operand)

Reconfigures the srcA data format for a new operand, always re-deriving the int8/unsigned state from the new format.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srca(const uint32_t srca_old_operand, const uint32_t srca_new_operand)

Reconfigures the srcA data format only if the new operand’s format differs from the old one.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srcb(const uint32_t srcb_new_operand)

Reconfigures the srcB data format for a new operand, always re-deriving the int8/unsigned state from the new format.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srcb(const uint32_t srcb_old_operand, const uint32_t srcb_new_operand)

Reconfigures the srcB data format only if the new operand’s format differs from the old one.

template<SrcOrder src_order = SrcOrder::Regular, bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_skip_int8(const uint32_t icb0_new_operand, const uint32_t icb1_new_operand)

Same as reconfig_data_format, but skips re-deriving the int8/unsigned state (the old to_from_int8 == false behavior). Use only when the caller knows the reconfig never crosses an Int8/UInt8/Int32 boundary and wants to avoid the extra register write.

template<SrcOrder src_order = SrcOrder::Regular, bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_skip_int8(const uint32_t icb0_old_operand, const uint32_t icb0_new_operand, const uint32_t icb1_old_operand, const uint32_t icb1_new_operand)

Conditional variant of reconfig_data_format_skip_int8: reconfigures only sources whose format differs, without re-deriving the int8/unsigned state.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srca_skip_int8(const uint32_t srca_new_operand)

reconfig_data_format_srca without re-deriving the int8/unsigned state. See reconfig_data_format_skip_int8.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srca_skip_int8(const uint32_t srca_old_operand, const uint32_t srca_new_operand)

Conditional srcA reconfig without re-deriving the int8/unsigned state. See reconfig_data_format_skip_int8.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srcb_skip_int8(const uint32_t srcb_new_operand)

reconfig_data_format_srcb without re-deriving the int8/unsigned state. See reconfig_data_format_skip_int8.

template<bool is_tile_dim_reconfig_en = false>
void ckernel::reconfig_data_format_srcb_skip_int8(const uint32_t srcb_old_operand, const uint32_t srcb_new_operand)

Conditional srcB reconfig without re-deriving the int8/unsigned state. See reconfig_data_format_skip_int8.