aboutsummaryrefslogtreecommitdiff
path: root/mt/as_vvadd/as_vvadd.c
diff options
context:
space:
mode:
Diffstat (limited to 'mt/as_vvadd/as_vvadd.c')
-rwxr-xr-xmt/as_vvadd/as_vvadd.c28
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);
}