diff --git a/stream.cu b/stream.cu index d63f981..dae7935 100644 --- a/stream.cu +++ b/stream.cu @@ -14,7 +14,8 @@ Written by: Massimiliano Fatica, NVIDIA Corporation - Further modifications by: Ben Cumming, CSCS; Andreas Herten (JSC/FZJ) + Further modifications by: Ben Cumming, CSCS; Andreas Herten (JSC/FZJ); + Prashanth Kanduri, CSCS */ #define NTIMES 20 @@ -146,7 +147,7 @@ int main(int argc, char** argv) { real *d_a, *d_b, *d_c; int j,k; - double times[4][NTIMES]; + float times[4][NTIMES]; real scalar; std::vector label{"Copy: ", "Scale: ", "Add: ", "Triad: "}; @@ -181,31 +182,39 @@ int main(int argc, char** argv) set_array<<>>(d_c, .5f, N); /* --- MAIN LOOP --- repeat test cases NTIMES times --- */ + cudaEvent_t start, stop; + cudaEventCreate(&start); + cudaEventCreate(&stop); + scalar=3.0f; for (k=0; k<<>>(d_a, d_c, N); - cudaThreadSynchronize(); - times[0][k]= mysecond() - times[0][k]; + cudaEventRecord(stop); + cudaEventSynchronize(stop); + cudaEventElapsedTime(×[0][k], start, stop); - times[1][k]= mysecond(); + cudaEventRecord(start); STREAM_Scale<<>>(d_b, d_c, scalar, N); - cudaThreadSynchronize(); - times[1][k]= mysecond() - times[1][k]; + cudaEventRecord(stop); + cudaEventSynchronize(stop); + cudaEventElapsedTime(×[1][k], start, stop); - times[2][k]= mysecond(); + cudaEventRecord(start); STREAM_Add<<>>(d_a, d_b, d_c, N); - cudaThreadSynchronize(); - times[2][k]= mysecond() - times[2][k]; + cudaEventRecord(stop); + cudaEventSynchronize(stop); + cudaEventElapsedTime(×[2][k], start, stop); - times[3][k]= mysecond(); + cudaEventRecord(start); STREAM_Triad<<>>(d_b, d_c, d_a, scalar, N); - cudaThreadSynchronize(); - times[3][k]= mysecond() - times[3][k]; - } + cudaEventRecord(stop); + cudaEventSynchronize(stop); + cudaEventElapsedTime(×[3][k], start, stop); + } /* --- SUMMARY --- */ for (k=1; k