matmul_tiles

void ckernel::mm_init(uint32_t in0_cb_id = 0, uint32_t in1_cb_id = 1, uint32_t out_cb_id = 16, const uint32_t transpose = 0)

Initialization for matmul_tiles operation. Must be called before matmul_tiles.

Return value: None

| Argument | Description | Type | Valid Range | Required | |————-—|—————————————————————|——-—|————————————————–—|——-—| | in0_cb_id | The identifier of the first input circular buffer (CB) | uint32_t | 0 to 31 | False | | in1_cb_id | The identifier of the second input circular buffer (CB) | uint32_t | 0 to 31 | False | | out_cb_id | The identifier of the output circular buffer (CB) | uint32_t | 0 to 31 | False | | transpose | The transpose flag for performing transpose operation on B | uint32_t | Any positive value will indicate tranpose is set | False |

void ckernel::mm_init_short_with_dt(uint32_t in0_cb_id = 0, uint32_t in1_cb_id = 1, uint32_t c_in_old_srca = 2, const uint32_t transpose = 0)

A short version of matmul_tiles initialization. It is used to reconfigure srcA of the compute engine back to matmul mode.

Return value: None

| Argument | Description | Type | Valid Range | Required | |————-—|—————————————————————|——-—|————————————————–—|——-—| | in0_cb_id | The identifier of the first input circular buffer (CB) | uint32_t | 0 to 31 | False | | in1_cb_id | The identifier of the second input circular buffer (CB) | uint32_t | 0 to 31 | False | | c_in_old_srca | The identifier of the old input to src A circular buffer (CB) | uint32_t | 0 to 31 | False | | transpose | The transpose flag for performing transpose operation on B | uint32_t | Any positive value will indicate tranpose is set | False |

void ckernel::mm_init_short(uint32_t in0_cb_id = 0, uint32_t in1_cb_id = 1, const uint32_t transpose = 0)

A short version of matmul_tiles initialization. Configure the unpacker and math engine to matmul mode.

Return value: None

| Argument | Description | Type | Valid Range | Required | |————-—|—————————————————————|——-—|————————————————–—|——-—| | in0_cb_id | The identifier of the first input circular buffer (CB) | uint32_t | 0 to 31 | False | | in1_cb_id | The identifier of the second input circular buffer (CB) | uint32_t | 0 to 31 | False | | transpose | The transpose flag for performing transpose operation on B | uint32_t | Any positive value will indicate tranpose is set | False |

void ckernel::matmul_tiles(uint32_t in0_cb_id, uint32_t in1_cb_id, uint32_t in0_tile_index, uint32_t in1_tile_index, uint32_t idst, const uint32_t transpose)

Performs tile-sized matrix multiplication C=A*B between the tiles in two specified input CBs and writes the result to DST. 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.

Return value: None

| Argument | Description | Type | Valid Range | Required | |————-—|———————————————————————-—|——-—|————————————————|——-—| | in0_cb_id | The identifier of the first input circular buffer (CB) | uint32_t | 0 to 31 | True | | in1_cb_id | The identifier of the second input circular buffer (CB) | uint32_t | 0 to 31 | True | | in0_tile_index | The index of the tile A from the first input CB | uint32_t | Must be less than the size of the CB | True | | in1_tile_index | The index of the tile B from the second input CB | uint32_t | Must be less than the size of the CB | True | | dst_tile_index | The index of the tile in DST REG to which the result C will be written. | uint32_t | Must be less than the acquired size of DST REG | True |