cpx_mtx_knk_metal_2(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
us2 = get_time();
printf("\tMetal2: %lu\n", us2 - us1);
+
+ us1 = get_time();
+ for (int i = 0; i < filter.rows; i++)
+ {
+ for (int j = 0; j < filter.cols; j++)
+ {
+ int x = (j * 2) + (i * filter.cols * 2);
+ int y = (i * 2) + (j * filter.cols * 2);
+ filter.ptr[x] = filter.ptr[y];
+ filter.ptr[x + 1] = filter.ptr[y + 1];
+ }
+ }
+ us2 = get_time();
+ printf("\tTranspose: %lu\n", us2 - us1);
+
+
us1 = get_time();
cpx_mtx_knk_threads(tmp.ptr, filter.ptr, gate.ptr, filter.rows, filter.cols, gate.rows, gate.cols);
us2 = get_time();