mul_tiles_bcast

void ckernel::mul_bcast_cols_init(uint32_t icb0, uint32_t icb1, bool acc_to_dest = false, uint32_t call_line = __builtin_LINE())

Performs a first-call or switch-from-another-op tile hw reconfiguration step needed for mul_bcast_cols to be executed correctly.

With acc_to_dest, every following mul_tiles_bcast_cols accumulates into its destination tile rather than overwriting it: DST[idst] += A * column 0 of B. That makes a column-broadcast multiply a MAC, so a weighted sum over several input tiles lands in one DST tile without an intermediate CB.

Argument Description

icb0 CB whose tile is unpacked into SrcA (operand A)

icb1 CB whose tile is unpacked into SrcB (operand B, column 0 broadcast)

acc_to_dest If true, operation = A * B + dst_tile_idx of mul_tiles_bcast_cols

void ckernel::mul_bcast_rows_init(uint32_t icb0, uint32_t icb1, uint32_t call_line = __builtin_LINE())

Performs a switch-from-another-op tile hw reconfiguration step needed for mul_bcast_rows to be executed correctly.

void ckernel::mul_bcast_scalar_init(uint32_t icb0, uint32_t icb1, uint32_t call_line = __builtin_LINE())

Performs a first-call or switch-from-another-op tile hw reconfiguration step needed for mul_bcast_cols to be executed correctly.

template<BroadcastType tBcastDim, bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::mul_tiles_bcast(uint32_t icb0, uint32_t icb1, uint32_t itile0, uint32_t itile1, uint32_t idst, uint32_t bcast_row_idx = 0)

Please refer to documentation for add_tiles_bcast.

template<bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::mul_tiles_bcast_rows(uint32_t icb0, uint32_t icb1, uint32_t itile0, uint32_t itile1, uint32_t idst, uint32_t bcast_row_idx = 0)

Shorthand template instantiation of mul_tiles_bcast.

template<bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::mul_tiles_bcast_cols(uint32_t icb0, uint32_t icb1, uint32_t itile0, uint32_t itile1, uint32_t idst)

Shorthand template instantiation of mul_tiles_bcast.

template<bool is_fp32_dest_acc_en = DST_ACCUM_MODE>
void ckernel::mul_tiles_bcast_scalar(uint32_t icb0, uint32_t icb1, uint32_t itile0, uint32_t itile1, uint32_t idst)

Performs a broadcast-multiply of a tile from icb0[itile0] with a scalar encoded as a tile from icb1[itile1].