From bcb43dacc2fe139e7da6a959fb3de28628cabc6b Mon Sep 17 00:00:00 2001 From: jzhou Date: Fri, 6 Feb 2009 19:35:20 +0000 Subject: [PATCH] hack to reduce overheads of Bamboo version --- .../Scheduling/FilterBank/FilterBank.java | 32 +++++++++++++---- .../Scheduling/FilterBank/c/filterbank.c | 35 ++++++++++++++----- 2 files changed, 53 insertions(+), 14 deletions(-) diff --git a/Robust/src/Benchmarks/Scheduling/FilterBank/FilterBank.java b/Robust/src/Benchmarks/Scheduling/FilterBank/FilterBank.java index a1dc9e49..05564e4f 100644 --- a/Robust/src/Benchmarks/Scheduling/FilterBank/FilterBank.java +++ b/Robust/src/Benchmarks/Scheduling/FilterBank/FilterBank.java @@ -83,9 +83,9 @@ public class FilterBank { } public void print() { - for(int i = 0; i < this.N_sim; i++) { + /*for(int i = 0; i < this.N_sim; i++) { System.printI((int)(this.y[i] * 10000)); - } + }*/ } } @@ -169,9 +169,19 @@ public class FilterBankAtom { //convolving H for (j=0; j< Nsim; j++) { - for (k=0; ((k=0)); k++) { + /*for (k=0; ((k=0)); k++) { vH[j]+=H[k]*r[j-k]; - } + }*/ + k = 0; + boolean stat = false; + int diff = j; + do{ + float tmp = H[k]*r[j-k]; + k++; + diff--; + stat = (k= 0); + vH[j]+=tmp; + }while(stat); } //Down Samplin @@ -186,9 +196,19 @@ public class FilterBankAtom { //convolving F for (j=0; j< Nsim; j++) { - for (k=0; ((k=0)); k++) { + /*for (k=0; ((k=0)); k++) { tvF[j]+=F[k]*vUp[j-k]; - } + }*/ + k = 0; + boolean stat = false; + int diff = j; + do{ + float tmp = F[k]*vUp[j-k]; + k++; + diff--; + stat = (k= 0); + tvF[j]+=tmp; + }while(stat); } } } diff --git a/Robust/src/Benchmarks/Scheduling/FilterBank/c/filterbank.c b/Robust/src/Benchmarks/Scheduling/FilterBank/c/filterbank.c index 7bce76fd..ba0596fa 100644 --- a/Robust/src/Benchmarks/Scheduling/FilterBank/c/filterbank.c +++ b/Robust/src/Benchmarks/Scheduling/FilterBank/c/filterbank.c @@ -68,7 +68,7 @@ void begin(void){ #ifdef RAW //print_float(y[i]); #else - //printf("%f\n", y[i]); + printf("%f\n", y[i]); #endif } } @@ -94,15 +94,24 @@ void FBCore(int N_samp,int N_ch, int N_col,float r[N_sim],float y[N_sim], float float Vect_Up[N_sim]; // output of the up sampler; float Vect_F[N_sim];// this is the output of the #ifdef RAW - raw_test_pass(raw_get_cycle()); + //raw_test_pass(raw_get_cycle()); #endif - //convolving H for (j=0; j< N_sim; j++) { Vect_H[j]=0; - for (k=0; ((k=0)); k++) - Vect_H[j]+=H[i][k]*r[j-k]; + /*for (k=0; ((k=0)); k++) + Vect_H[j]+=H[i][k]*r[j-k];*/ + k = 0; + int stat = 0; + int diff = j; + do { + float tmp = H[i][k]*r[j-k]; + k++; + diff--; + stat = (k=0); + Vect_H[j]+=tmp; + }while(stat); } //Down Sampling @@ -110,10 +119,10 @@ void FBCore(int N_samp,int N_ch, int N_col,float r[N_sim],float y[N_sim], float Vect_Dn[j]=Vect_H[j*N_samp]; //Up Sampling - /*for (j=0; j < N_sim;j++) + for (j=0; j < N_sim;j++) Vect_Up[j]=0; for (j=0; j < N_sim/N_samp;j++) - Vect_Up[j*N_samp]=Vect_Dn[j];*/ + Vect_Up[j*N_samp]=Vect_Dn[j]; //convolving F for (j=0; j< N_sim; j++) @@ -121,6 +130,16 @@ void FBCore(int N_samp,int N_ch, int N_col,float r[N_sim],float y[N_sim], float Vect_F[j]=0; /*for (k=0; ((k=0)); k++) Vect_F[j]+=F[i][k]*Vect_Up[j-k];*/ + k = 0; + int stat = 0; + int diff = j; + do { + float tmp = F[i][k]*Vect_Up[j-k]; + k++; + diff--; + stat = (k=0); + Vect_F[j]+=tmp; + }while(stat); } //adding the results to the y matrix @@ -128,7 +147,7 @@ void FBCore(int N_samp,int N_ch, int N_col,float r[N_sim],float y[N_sim], float for (j=0; j < N_sim; j++) y[j]+=Vect_F[j]; #ifdef RAW - raw_test_pass(raw_get_cycle()); + //raw_test_pass(raw_get_cycle()); #endif } } -- 2.34.1