GEMM Macro Kernel

The GEMM Macro Kernel computes the GEMM operation \(C \leftarrow \beta C + \alpha A B\) based on packing blocks of \(A\) and $B and multiplying these using the GEMM micro kernel. The matrix dimension are as follows:

Exercise: Test Framework

Note: Print the name of the matrix before you print its value.

Exercise: Add a call of the GEMM Macro Kernel

The macro kernel assumes that it receives already packed blocks \(A\) and \(B\). The signature for the macro kernel is given as

void
dgemm_macro(size_t m, size_t n, size_t k, double alpha,
            const double *A, const double *B,
            double beta,
            double *C, ptrdiff_t incRowC, ptrdiff_t incColC);

Do not continue until this compiles and runs without crashing.

Exercise: Implement the macro kernel

Implement the macro-kernel: