From ae421d6e8544786fe4bbc466d7b7aa47226e246a Mon Sep 17 00:00:00 2001 From: bdemsky Date: Wed, 11 Mar 2009 06:22:56 +0000 Subject: [PATCH] change to use less memory --- .../Prefetch/ManualPrefetch/2DFFT/fft2d.java | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/Robust/src/Benchmarks/Prefetch/ManualPrefetch/2DFFT/fft2d.java b/Robust/src/Benchmarks/Prefetch/ManualPrefetch/2DFFT/fft2d.java index 82fee742..5813989b 100644 --- a/Robust/src/Benchmarks/Prefetch/ManualPrefetch/2DFFT/fft2d.java +++ b/Robust/src/Benchmarks/Prefetch/ManualPrefetch/2DFFT/fft2d.java @@ -9,13 +9,12 @@ public class fft2d extends Thread { // // Code borrowed from :Java Digital Signal Processing book by Lyon and Rao - public Matrix data1, data2; + public Matrix data1; public int x0, x1; // Constructor: 2-d FFT of Complex data. - public fft2d(Matrix data1, Matrix data2, int x0, int x1) { + public fft2d(Matrix data1, int x0, int x1) { this.data1 = data1; - this.data2 = data2; this.x0 = x0; this.x1 = x1; } @@ -64,7 +63,7 @@ public class fft2d extends Thread { for (int i = x0; i < x1; i++,l++) { //input of FFT if ((l&15)==0) { - offsets2[0] = (short) l+x0; + offsets2[0] = (short) (l+x0); if ((l+x0+16)>= x1) { int t=x1-l-x0-1; if (t>0) { @@ -90,9 +89,7 @@ public class fft2d extends Thread { // Tranpose data. if (start == 0) { atomic { - //NO PREFETCH HERE...ALL DATA IS LOCAL - - transpose(tempdataRe,tempdataIm, data2.dataRe,data2.dataIm, rowlength, columnlength); + transpose(tempdataRe, tempdataIm, rowlength, columnlength); } } @@ -106,18 +103,18 @@ public class fft2d extends Thread { // // Add manual prefetch // prefetch data2.dataRe[start -> end] - Object o1 = data2.dataRe; + Object o1 = data1.dataRe; short[] offsets1 = new short[2]; offsets1[0] = (short) start; offsets1[1] = (short) 15; System.rangePrefetch(o1, offsets1); - o1 = data2.dataIm; + o1 = data1.dataIm; System.rangePrefetch(o1, offsets1); ///////////////////// - transtempRe = data2.dataRe; - transtempIm = data2.dataIm; + transtempRe = data1.dataRe; + transtempIm = data1.dataIm; int l=8; for (int j = start; j < end; j++,l++) { if ((l&15)==0) { @@ -143,14 +140,19 @@ public class fft2d extends Thread { } } //end of run - public void transpose(double[][] tempdataRe, double[][] tempdataIm, double[][] outputRe, - double[][] outputIm, int rowlength, int columnlength) { + public void transpose(double[][] tempdataRe, double[][] tempdataIm, int rowlength, int columnlength) { for(int i = 0; i