printf("\n");
}
-mylong *matrix_multiply(gf_t *gf, mylong *m1, mylong *m2, int r1, int c1, int r2, int c2, int w)
+mylong *matrix_multiply(gf_t *gf, mylong *m1, mylong *m2, int r1, int c1, int r2, int c2, int w, int iii)
{
mylong *product;
- int i, j, k;
+ int i=iii, j, k;
product = (mylong *) malloc(sizeof(mylong)*r1*c2);
for (i = 0; i < r1*c2; i++) product[i] = 0;
}
-#define cli() __asm volatile( "cli" ::: "memory" )
-#define sei() __asm volatile( "sei" ::: "memory" )
int main(int argc, char **argv)
// sleep(2);
auto start = std::chrono::system_clock::now();
- matC=matrix_multiply(&gf, matG, matS, n, t, t, len, w);
+ matC=matrix_multiply(&gf, matG, matS, n, t, t, len, w,0);
auto end = std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds = end-start;
total_time+=elapsed_seconds.count();
// sleep(2);
start = std::chrono::system_clock::now();
for(int i=0;i<1000;i++) {
- cli();
- matS2=matrix_multiply(&gf, matInvGs, matCs, t, t, t, len, w);
- sei();
+
+ matS2=matrix_multiply(&gf, matInvGs, matCs, t, t, t, len, w, i);
+
}
end = std::chrono::system_clock::now();
elapsed_seconds = end-start;