#include "stdlib.h" #include "util.h" #include "dataset.h" void __attribute__((noinline)) matmul(const int coreid, const int ncores, const int lda, const data_t A[], const data_t B[], data_t C[] ) { // ***************************** // // **** ADD YOUR CODE HERE ***** // // ***************************** // // // feel free to make a separate function for MI and MSI versions. for (int i = coreid; i < lda; i+=ncores*2) { for (int j = 0; j < lda; j++) { for (int k = 0; k < lda; k++) { int A12 = A[j*lda + k]; int B1 = B[k*lda + i]; int B2 = B[k*lda + i + ncores]; C[i+j*lda] += A12 * B1; C[i+ncores+j*lda] += A12 * B2; //C[i+j*lda] += A[j*lda +k] * B[k*lda +i]; } } } }