blob: 7a6b75527db9c11ceae543a2b31f18838cdbc212 [file] [log] [blame]
#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[] )
{
int i, j, k;
data_t acc_temp;
data_t *A_j, *B_i;
int j_start = coreid*(32/ncores);
int j_end = (coreid+1)*(32/ncores);
for ( i = 0; i < 32; i++ ) {
B_i = B + i;
for ( j = j_start; j < j_end; j++ )
{
acc_temp = 0;
A_j = A + j*32;
for ( k = 0; k < 32; k++ )
{
acc_temp += *(A_j + k) * *(B_i + k*32);
}
C[i + j*32] = acc_temp;
}
}
}