add_tiles_bcast

void ckernel::add_bcast_cols_init_short(uint32_t icb0 = 0, uint32_t icb1 = 1)

Performs a first-call or switch-from-another-op tile hw reconfiguration step needed for add_bcast_cols to be executed correctly. Required to be called before add_tiles_bcast if using column as broadcast type

void ckernel::add_bcast_rows_init_short(uint32_t icb0 = 0, uint32_t icb1 = 1)

Performs a first-call or switch-from-another-op tile hw reconfiguration step needed for add_bcast_rows to be executed correctly. Required to be called before add_tiles_bcast if using column as broadcast type

template<BroadcastType tBcastDim>
void ckernel::add_tiles_bcast(uint32_t icb0, uint32_t icb1, uint32_t itile0, uint32_t itile1, uint32_t idst)

This documentation applies to either one of the 3 broadcast operation variants - add_tiles_bcast, sub_tiles_bcast and mul_tiles_bcast.

The description below describes add_tiles_bcast, the other 2 operations use the same definition with the corresponding substitution of the math operator.

Performs a broadcast-operation C=A+B of tiles in two CBs at given indices and writes the result to the DST register at index dst_tile_index. The DST register buffer must be in acquired state via acquire_dst call. This call is blocking and is only available on the compute engine.

Broadcasting semantics are defined as follows:

For dim==BroadcastType::COL, the input in B is expected to be a single tile with a filled 0-column and zeros elsewhere. The result is C[h, w] = A[h,w] + B[w]

For dim==Dim::C, the input in B is expected to be a single tile with a filled 0-row, and zeros elsewhere. The result is C[h, w] = A[h,w] + B[h]

For dim==Dim::RC, the input in B is expected to be a single tile with a filled single value at location [0,0], and zeros elsewhere. The result is C[h, w] = A[h,w] + B[0,0]

Return value: None

DOX-TODO(AP): verify that the bcast tile is actually required to be filled with zeros.

| Argument | Description | Type | Valid Range | Required | |————-&#8212;|——————————————————-&#8212;|————&#8212;|———————————————&#8212;|——-&#8212;| | tBcastDim | Broadcast dimension | BroadcastType | One of Dim::R, Dim::C, Dim::RC. | True | | in0_cb_id | The identifier of the circular buffer (CB) containing A | uint32_t | 0 to 31 | True | | in1_cb_id | The indentifier of the circular buffer (CB) containing B | uint32_t | 0 to 31 | True | | in0_tile_index | The index of tile A within the first CB | uint32_t | Must be less than the size of the CB | True | | in1_tile_index | The index of tile B within the second CB | uint32_t | Must be less than the size of the CB | True | | dst_tile_index | The index of the tile in DST REG for the result C | uint32_t | Must be less than the acquired size of DST REG | True |