L2 kernel implementations include memory datamovers and computation components composed by L1 primitive functions. The kernels always have memoy (DDR/HBM) interfaces. The data mover modules move data between the vectors’ and matrices’ off-chip storage and the computation modules. The L1 primitive functions with stream interfaces can be quickly chained with the data mover modules together to form a computation kernel. The organization of the Vitis BLAS L2 files and directories, as described below, reflects this design strategy:
- L2/include/hw/xf_blas/: The directory that contains the kernel modules.
- L2/include/sw/: The directory that contains the host modules.
- L2/test/hw: The directory that contains the Makefiles used for testing each implemented kernel.
More information about computation and data mover modules can be found in L2 GEMM kernel.