From b50e280078e1791b2570a2cbb3f2cc9b8b972f09 Mon Sep 17 00:00:00 2001 From: Steven <steven> Date: Sat, 24 Aug 2019 23:56:05 +0200 Subject: [PATCH] fix timer --- lab_1/C/lab01_ex2.cu | 4 ++-- lab_2/C/lab02_ex3_6.cu | 12 ++++++------ lab_2/Fortran/lab02_ex3_6_c.cu | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lab_1/C/lab01_ex2.cu b/lab_1/C/lab01_ex2.cu index cef8711..7b31e46 100644 --- a/lab_1/C/lab01_ex2.cu +++ b/lab_1/C/lab01_ex2.cu @@ -25,9 +25,9 @@ float generate_hash(int n, float *y) /** * Helper method that calculates the elapsed time between two time intervals (in milliseconds). */ -long get_elapsed(tval t0, tval t1) +double get_elapsed(tval t0, tval t1) { - return (t1.tv_sec - t0.tv_sec) * 1000 + (t1.tv_usec - t0.tv_usec) / 1000; + return (double)(t1.tv_sec - t0.tv_sec) * 1000.0L + (double)(t1.tv_usec - t0.tv_usec) / 1000.0L; } /** diff --git a/lab_2/C/lab02_ex3_6.cu b/lab_2/C/lab02_ex3_6.cu index aba4942..ab78190 100644 --- a/lab_2/C/lab02_ex3_6.cu +++ b/lab_2/C/lab02_ex3_6.cu @@ -120,15 +120,15 @@ void checkCUDAError() /** * Calculates the elapsed time between two time intervals (in milliseconds). */ -long get_elapsed(tval t0, tval t1) +double get_elapsed(tval t0, tval t1) { - return (t1.tv_sec - t0.tv_sec) * 1000 + (t1.tv_usec - t0.tv_usec) / 1000; + return (double)(t1.tv_sec - t0.tv_sec) * 1000.0L + (double)(t1.tv_usec - t0.tv_usec) / 1000.0L; } /** * Stores the result image and prints a message. */ -void store_result(int index, long elapsed_cpu, long elapsed_gpu, +void store_result(int index, double elapsed_cpu, double elapsed_gpu, int width, int height, float *image) { char path[255]; @@ -137,7 +137,7 @@ void store_result(int index, long elapsed_cpu, long elapsed_gpu, writeBMPGrayscale(width, height, image, path); printf("Step #%d Completed - Result stored in \"%s\".\n", index, path); - printf("Elapsed CPU: %ldms / ", elapsed_cpu); + printf("Elapsed CPU: %fms / ", elapsed_cpu); if (elapsed_gpu == 0) { @@ -145,7 +145,7 @@ void store_result(int index, long elapsed_cpu, long elapsed_gpu, } else { - printf("Elapsed GPU: %ldms\n", elapsed_gpu); + printf("Elapsed GPU: %fms\n", elapsed_gpu); } } @@ -310,7 +310,7 @@ int main(int argc, char **argv) float *d_image_out[2] = { 0 }; int image_size = 0; tval t[2] = { 0 }; - long elapsed[2] = { 0 }; + double elapsed[2] = { 0 }; dim3 grid(1); // The grid will be defined later dim3 block(BLOCK_SIZE, BLOCK_SIZE); // The block size will not change diff --git a/lab_2/Fortran/lab02_ex3_6_c.cu b/lab_2/Fortran/lab02_ex3_6_c.cu index 2ed6aab..ba5c395 100644 --- a/lab_2/Fortran/lab02_ex3_6_c.cu +++ b/lab_2/Fortran/lab02_ex3_6_c.cu @@ -120,15 +120,15 @@ void checkCUDAError() /** * Calculates the elapsed time between two time intervals (in milliseconds). */ -long get_elapsed(tval t0, tval t1) +double get_elapsed(tval t0, tval t1) { - return (t1.tv_sec - t0.tv_sec) * 1000 + (t1.tv_usec - t0.tv_usec) / 1000; + return (double)(t1.tv_sec - t0.tv_sec) * 1000.0L + (double)(t1.tv_usec - t0.tv_usec) / 1000.0L; } /** * Stores the result image and prints a message. */ -void store_result(int index, long elapsed_cpu, long elapsed_gpu, +void store_result(int index, double elapsed_cpu, double elapsed_gpu, int width, int height, float *image) { char path[255]; @@ -137,7 +137,7 @@ void store_result(int index, long elapsed_cpu, long elapsed_gpu, writeBMPGrayscale(width, height, image, path); printf("Step #%d Completed - Result stored in \"%s\".\n", index, path); - printf("Elapsed CPU: %ldms / ", elapsed_cpu); + printf("Elapsed CPU: %fms / ", elapsed_cpu); if (elapsed_gpu == 0) { @@ -145,7 +145,7 @@ void store_result(int index, long elapsed_cpu, long elapsed_gpu, } else { - printf("Elapsed GPU: %ldms\n", elapsed_gpu); + printf("Elapsed GPU: %fms\n", elapsed_gpu); } } -- GitLab