The AI Engine API
provides a aie::mmul
class template for a
vector-based matrix multiplication. Multiple intermediate matrix multiplication
results are accumulated to give the final result. For more details on the supported
matrix multiplication shapes (M*K*N
) and data
types, see Matrix Multiplication in the
AI
Engine API User Guide (UG1529).
The aie::mmul
operations mul
and mac
accept row
based data for the vector-based matrix multiplication. Then for the mac
operation, arrange the data by M*K
or K*N
for better
performance. This data shuffling can be done either in PL or AI Engine.
This section gives an example of (64 * 64) x (64 *
64)
dimensions matrix multiplication. The data type is int8 x int8
. The matrix multiplication shape 4*16*8
is chosen.
The input data is assumed to be row based. Prior to the matrix multiplication
kernel, the input data is shuffled in AI Engine-ML memory tile to form 4*16
matrix and 16*8
matrix.
The picture below shows the graph.