reconfig_data_format
-
template<SrcOrder src_order = SrcOrder::Regular>
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. Does not reprogram tile/face geometry — use reconfig_full_operand when the tile shape also changes.
-
template<SrcOrder src_order = SrcOrder::Regular>
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.
NOTE: like all conditional (old, new) reconfig overloads, this re-detects the operands’ face geometry and updates it when it differs (long-standing auto-detect behavior). The unconditional overload above never touches geometry.
-
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.
-
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. See the conditional geometry note on reconfig_data_format(old, new, …).
-
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.
-
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. See the conditional geometry note on reconfig_data_format(old, new, …).
-
template<SrcOrder src_order = SrcOrder::Regular>
void ckernel::reconfig_full_operand(const uint32_t icb0_new_operand, const uint32_t icb1_new_operand)
-
Reconfigures the srcA and srcB unpacker/math data formats AND tile/face geometry for new operands, always re-deriving the int8/unsigned state from the new formats. Use when the new operands’ tile or face shape differs from what is currently programmed. Operands are in natural (icb0, icb1) order and honor src_order.
-
template<SrcOrder src_order = SrcOrder::Regular>
void ckernel::reconfig_full_operand(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_full_operand: reconfigures only the sources whose format differs between the old and new operand, reprogramming their tile/face geometry. Operands are in natural (icb0, icb1) order.
-
void ckernel::reconfig_full_operand_srca(const uint32_t srca_new_operand)
-
Reconfigures the srcA data format and tile/face geometry for a new operand, re-deriving the int8/unsigned state.
-
void ckernel::reconfig_full_operand_srca(const uint32_t srca_old_operand, const uint32_t srca_new_operand)
-
Reconfigures the srcA data format and tile/face geometry only if the new operand’s format differs from the old one.
-
void ckernel::reconfig_full_operand_srcb(const uint32_t srcb_new_operand)
-
Reconfigures the srcB data format and tile/face geometry for a new operand, re-deriving the int8/unsigned state.
-
void ckernel::reconfig_full_operand_srcb(const uint32_t srcb_old_operand, const uint32_t srcb_new_operand)
-
Reconfigures the srcB data format and tile/face geometry only if the new operand’s format differs from the old one.
-
template<SrcOrder src_order = SrcOrder::Regular>
void ckernel::reconfig_tile_shape(const uint32_t icb0_new_operand, const uint32_t icb1_new_operand)
-
Reprograms only the srcA and srcB unpacker tile size and face geometry (x-dim, num_faces) for new operands, leaving the data formats (and int8 state) untouched. Use when only the tile shape changes. Operands are in natural (icb0, icb1) order and honor src_order.
Note
The format-derived ch1 strides are unchanged (a shape-only change does not alter them). A face_r_dim change additionally requires re-running the op init (it programs the unpacker ADC X-end); a num_faces-only change is fully handled here.
-
template<SrcOrder src_order = SrcOrder::Regular>
void ckernel::reconfig_tile_shape(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_tile_shape: reprograms srcA/srcB tile size and face geometry only for the sources whose geometry (or CB) changed between the old and new operand. Operands are in natural (icb0, icb1) order.
-
void ckernel::reconfig_tile_shape_srca(const uint32_t srca_new_operand)
-
Reprograms only the srcA unpacker tile size and face geometry for a new operand, leaving the format untouched.
-
void ckernel::reconfig_tile_shape_srca(const uint32_t srca_old_operand, const uint32_t srca_new_operand)
-
Reprograms the srcA unpacker tile size and face geometry only if the new operand’s geometry (or CB) differs.
-
void ckernel::reconfig_tile_shape_srcb(const uint32_t srcb_new_operand)
-
Reprograms only the srcB unpacker tile size and face geometry for a new operand, leaving the format untouched.
-
void ckernel::reconfig_tile_shape_srcb(const uint32_t srcb_old_operand, const uint32_t srcb_new_operand)
-
Reprograms the srcB unpacker tile size and face geometry only if the new operand’s geometry (or CB) differs.
-
template<SrcOrder src_order = SrcOrder::Regular>
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. 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>
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.
-
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.
-
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.
-
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.
-
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.