change mid arrays
[IRC.git] / Robust / src / Benchmarks / Prefetch / MatrixMultiply / MatrixMultiplyN.java
index f0314b30a3bf21867acfbf828d8ca50624d99cd0..077f04fb704238025338fa1a4bdde626d1da46d7 100644 (file)
@@ -1,7 +1,6 @@
 public class MatrixMultiply extends Thread{
     MMul mmul;
     public int x0, y0, x1, y1;
-    
     public MatrixMultiply(MMul mmul, int x0, int x1, int y0, int y1) {
        this.mmul = mmul;
        this.x0 = x0;
@@ -12,14 +11,18 @@ public class MatrixMultiply extends Thread{
     
     public void run() {
        atomic {
+           double la[][]=mmul.a;
+           double lc[][]=mmul.c;
+           double lb[][]=mmul.btranspose;
+           int M=mmul.M;
+           
            //Use btranspose for cache performance
            for(int i = x0; i< x1; i++){
-               double a[]=mmul.a[i];
-               double c[]=mmul.c[i];
-               int M=mmul.M;
+               double a[]=la[i];
+               double c[]=lc[i];
                for (int j = y0; j < y1; j++) {
                    double innerProduct=0;
-                   double b[] = mmul.btranspose[j];
+                   double b[] = lb[j];
                    for(int k = 0; k < M; k++) {
                        innerProduct += a[k] *b[k];
                    }
@@ -38,11 +41,16 @@ public class MatrixMultiply extends Thread{
                SIZE=Integer.parseInt(args[1]);
        }
        
-       int[] mid = new int[4];
-       mid[0] = (128<<24)|(195<<16)|(175<<8)|80;
-       mid[1] = (128<<24)|(195<<16)|(175<<8)|73;
-       mid[2] = (128<<24)|(195<<16)|(175<<8)|78;
-       mid[3] = (128<<24)|(195<<16)|(175<<8)|79;
+       int[] mid = new int[8];
+       mid[0] = (128<<24)|(195<<16)|(136<<8)|162; //dw-10
+       mid[1] = (128<<24)|(195<<16)|(136<<8)|163; //dw-11
+       mid[2] = (128<<24)|(195<<16)|(136<<8)|164; //dw-12
+       mid[3] = (128<<24)|(195<<16)|(136<<8)|165; //dw-13
+       mid[4] = (128<<24)|(195<<16)|(136<<8)|166; //dw-14
+       mid[5] = (128<<24)|(195<<16)|(136<<8)|167; //dw-15
+       mid[6] = (128<<24)|(195<<16)|(136<<8)|168; //dw-16
+       mid[7] = (128<<24)|(195<<16)|(136<<8)|169; //dw-17
        int p, q, r;
        MatrixMultiply[] mm;
        MatrixMultiply tmp;
@@ -86,6 +94,7 @@ public class MatrixMultiply extends Thread{
            }
            tmp.start(mid[i]);
        }
+
        
        // wait for them to finish
        for (int i = 0; i < NUM_THREADS; i++) {