Fields - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English
kernel m_mat_vec_mulKernels [TP_CASC_LEN]

The chain of kernels that will be created and mapped onto AIE tiles. Number of kernels ( TP_CASC_LEN ) will be connected with each other in series via a cascade interface.

port <input> inA [TP_CASC_LEN]

Input to the function, Matrix A. This must be stored in a column major format (each column of data is stored contigiously in memory). The dimensions of the matrix are specified by template parameters TP_DIM_A (number of rows), and TP_DIM_B (number of columns).

TP_DIM_A must be a multiple of 256 / 8 / sizeof(TT_DATA_A), and TP_DIM_B must be a multiple of 256 / 8 / sizeof(TT_DATA_B).

The matrix can be zero-padded to achieve this requirement.

The number of samples to the Matrix A iobuffer will be TP_DIM_A * TP_DIM_B * TP_NUM_FRAMES.

port <input> inB [TP_CASC_LEN]

Input to the function, Vector B. The dimensions of the vector are specified by template parameter TP_DIM_B (equal to number of columns in Matrix A).

TP_DIM_B must be a multiple of 256 / 8 / sizeof(TT_DATA_B).

The vector can be zero-padded to achieve this requirement.

The number of samples to the Vector B iobuffer will be TP_DIM_B * TP_NUM_FRAMES.

port <output> out [1]

The output data of the function. For cascaded designs, this is located at the end of the cascaded kernel chain. The output type will depend on the type of the matrix and vector (TT_DATA_A and TT_DATA_B). The vector result of the matrix-vector multiplication will be the size of TP_DIM_A. The number of samples to the Output iobuffer will be TP_DIM_A * TP_NUM_FRAMES.