diff options
Diffstat (limited to 'mt/as_vvadd/as_vvadd.c')
-rwxr-xr-x | mt/as_vvadd/as_vvadd.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/mt/as_vvadd/as_vvadd.c b/mt/as_vvadd/as_vvadd.c index dd1f94b..3034ae3 100755 --- a/mt/as_vvadd/as_vvadd.c +++ b/mt/as_vvadd/as_vvadd.c @@ -51,7 +51,7 @@ unsigned long ncores; //-------------------------------------------------------------------------- // Helper functions -void printArray( char name[], int n, data_t arr[] ) +void printArrayMT( char name[], int n, data_t arr[] ) { int i; if (coreid != 0) @@ -63,7 +63,7 @@ void printArray( char name[], int n, data_t arr[] ) printf( "\n" ); } -void __attribute__((noinline)) verify(size_t n, const data_t* test, const data_t* correct) +void __attribute__((noinline)) verifyMT(size_t n, const data_t* test, const data_t* correct) { if (coreid != 0) return; @@ -107,9 +107,9 @@ void __attribute__((noinline)) vvadd_opt(size_t n, data_t* __restrict__ x, const for (i = coreid; i < n; i += 2*ncores) { x[i] = x[i] + y[i]; x[i+2] = x[i+2] + y[i+2]; - //barrier(); + //barrier(nc); } - barrier(); //adding a barrier so there aren't any OOB errors due to faster threads + barrier(ncores); //adding a barrier so there aren't any OOB errors due to faster threads } @@ -140,12 +140,12 @@ void thread_entry(int cid, int nc) // Execute the provided, terrible vvadd - barrier(); - stats(vvadd(DATA_SIZE, results_data, input2_data); barrier()); + barrier(nc); + stats(vvadd(DATA_SIZE, results_data, input2_data); barrier(nc)); // verify - verify(DATA_SIZE, results_data, verify_data); + verifyMT(DATA_SIZE, results_data, verify_data); // reset results from the first trial if (coreid == 0) @@ -153,21 +153,21 @@ void thread_entry(int cid, int nc) for (i=0; i < DATA_SIZE; i++) results_data[i] = input1_data[i]; } - barrier(); + barrier(nc); // Execute your faster vvadd - barrier(); - stats(vvadd_opt(DATA_SIZE, results_data, input2_data); barrier()); + barrier(nc); + stats(vvadd_opt(DATA_SIZE, results_data, input2_data); barrier(nc)); #ifdef DEBUG - printArray("results: ", DATA_SIZE, results_data); - printArray("verify : ", DATA_SIZE, verify_data); + printArrayMT("results: ", DATA_SIZE, results_data); + printArrayMT("verify : ", DATA_SIZE, verify_data); #endif // verify - verify(DATA_SIZE, results_data, verify_data); - barrier(); + verifyMT(DATA_SIZE, results_data, verify_data); + barrier(nc); exit(0); } |