diff options
-rw-r--r-- | benchmark/benchmark_read_buffer.cpp | 6 | ||||
-rw-r--r-- | benchmark/benchmark_read_image.cpp | 6 | ||||
-rw-r--r-- | benchmark/benchmark_use_host_ptr_buffer.cpp | 6 | ||||
-rw-r--r-- | benchmark/enqueue_copy_buf.cpp | 6 | ||||
-rw-r--r-- | utests/utest.hpp | 8 | ||||
-rw-r--r-- | utests/utest_helper.cpp | 6 | ||||
-rw-r--r-- | utests/utest_helper.hpp | 2 | ||||
-rw-r--r-- | utests/vload_bench.cpp | 6 |
8 files changed, 29 insertions, 17 deletions
diff --git a/benchmark/benchmark_read_buffer.cpp b/benchmark/benchmark_read_buffer.cpp index 31a1f599..431f42aa 100644 --- a/benchmark/benchmark_read_buffer.cpp +++ b/benchmark/benchmark_read_buffer.cpp @@ -1,7 +1,7 @@ #include "utests/utest_helper.hpp" #include <sys/time.h> -int benchmark_read_buffer(void) +double benchmark_read_buffer(void) { struct timeval start,stop; @@ -43,7 +43,9 @@ int benchmark_read_buffer(void) free(buf_data[0]); buf_data[0] = NULL; - return time_subtract(&stop, &start, 0); + double elapsed = time_subtract(&stop, &start, 0); + + return BANDWIDTH(sz * sizeof(float) * 2 * 100, elapsed); } MAKE_BENCHMARK_FROM_FUNCTION(benchmark_read_buffer); diff --git a/benchmark/benchmark_read_image.cpp b/benchmark/benchmark_read_image.cpp index 48aa9871..e3aa5bd0 100644 --- a/benchmark/benchmark_read_image.cpp +++ b/benchmark/benchmark_read_image.cpp @@ -2,7 +2,7 @@ #include "utests/utest_helper.hpp" #include <sys/time.h> -int benchmark_read_image(void) +double benchmark_read_image(void) { struct timeval start,stop; @@ -61,7 +61,9 @@ int benchmark_read_image(void) free(buf_data[0]); buf_data[0] = NULL; - return time_subtract(&stop, &start, 0); + double elapsed = time_subtract(&stop, &start, 0); + + return BANDWIDTH(sz * sizeof(float) * 2 * 100, elapsed); } MAKE_BENCHMARK_FROM_FUNCTION(benchmark_read_image); diff --git a/benchmark/benchmark_use_host_ptr_buffer.cpp b/benchmark/benchmark_use_host_ptr_buffer.cpp index 80b6c5c3..9e3d1551 100644 --- a/benchmark/benchmark_use_host_ptr_buffer.cpp +++ b/benchmark/benchmark_use_host_ptr_buffer.cpp @@ -1,7 +1,7 @@ #include "utests/utest_helper.hpp" #include <sys/time.h> -int benchmark_use_host_ptr_buffer(void) +double benchmark_use_host_ptr_buffer(void) { struct timeval start,stop; @@ -32,7 +32,9 @@ int benchmark_use_host_ptr_buffer(void) free(buf_data[0]); buf_data[0] = NULL; - return time_subtract(&stop, &start, 0); + double elapsed = time_subtract(&stop, &start, 0); + + return BANDWIDTH(n*sizeof(uint32_t)*100*2, elapsed); } MAKE_BENCHMARK_FROM_FUNCTION(benchmark_use_host_ptr_buffer); diff --git a/benchmark/enqueue_copy_buf.cpp b/benchmark/enqueue_copy_buf.cpp index f012cf71..549c8b16 100644 --- a/benchmark/enqueue_copy_buf.cpp +++ b/benchmark/enqueue_copy_buf.cpp @@ -28,7 +28,7 @@ void test_copy_buf(size_t sz, size_t src_off, size_t dst_off, size_t cb) src_off, dst_off, cb*sizeof(char), 0, NULL, NULL)); } -int enqueue_copy_buf(void) +double enqueue_copy_buf(void) { size_t i; const size_t sz = 127 *1023 * 1023; @@ -41,7 +41,9 @@ int enqueue_copy_buf(void) } gettimeofday(&stop,0); - return time_subtract(&stop, &start, 0); + double elapsed = time_subtract(&stop, &start, 0); + + return BANDWIDTH(sz * sizeof(char) * 10, elapsed); } MAKE_BENCHMARK_FROM_FUNCTION(enqueue_copy_buf); diff --git a/utests/utest.hpp b/utests/utest.hpp index b028b64f..7ae8b876 100644 --- a/utests/utest.hpp +++ b/utests/utest.hpp @@ -30,6 +30,7 @@ #include "utest_exception.hpp" #include <vector> #include <iostream> +#include <iomanip> /*! struct for statistics */ struct RStatistics @@ -135,10 +136,10 @@ struct UTest #define BENCHMARK(EXPR) \ do { \ - int ret = 0;\ + double ret = 0;\ try { \ ret = EXPR; \ - std::cout << " [Result: " << ret << "] [SUCCESS]" << std::endl; \ + std::cout << " [Result: " << std::fixed<< std::setprecision(3) << ret << " GB/S] [SUCCESS]" << std::endl; \ UTest::retStatistics.passCount += 1; \ } \ catch (Exception e) { \ @@ -147,5 +148,8 @@ struct UTest UTest::retStatistics.failCount++; \ } \ } while (0) + +#define BANDWIDTH(BYTES, MSEC) \ + ((double)(BYTES)) / ((MSEC) * 1e6); #endif /* __UTEST_UTEST_HPP__ */ diff --git a/utests/utest_helper.cpp b/utests/utest_helper.cpp index 591054e9..d3c378e9 100644 --- a/utests/utest_helper.cpp +++ b/utests/utest_helper.cpp @@ -681,7 +681,7 @@ int cl_INT_ULP(int int_number) return 0; } -int time_subtract(struct timeval *y, struct timeval *x, struct timeval *result) +double time_subtract(struct timeval *y, struct timeval *x, struct timeval *result) { if ( x->tv_sec > y->tv_sec ) return -1; @@ -699,6 +699,6 @@ int time_subtract(struct timeval *y, struct timeval *x, struct timeval *result) } } - int msec = 1000.0*(y->tv_sec - x->tv_sec) + (y->tv_usec - x->tv_usec)/1000.0; + double msec = 1000.0*(y->tv_sec - x->tv_sec) + (y->tv_usec - x->tv_usec)/1000.0; return msec; -}
\ No newline at end of file +} diff --git a/utests/utest_helper.hpp b/utests/utest_helper.hpp index 5d8e835c..6d097662 100644 --- a/utests/utest_helper.hpp +++ b/utests/utest_helper.hpp @@ -231,7 +231,7 @@ extern float cl_FLT_ULP(float float_number); extern int cl_INT_ULP(int int_number); /* subtract the time */ -int time_subtract(struct timeval *y, struct timeval *x, struct timeval *result); +double time_subtract(struct timeval *y, struct timeval *x, struct timeval *result); #endif /* __UTEST_HELPER_HPP__ */ diff --git a/utests/vload_bench.cpp b/utests/vload_bench.cpp index a7703fcd..ddfaaee7 100644 --- a/utests/vload_bench.cpp +++ b/utests/vload_bench.cpp @@ -34,8 +34,8 @@ static double vload_bench(const char *kernelFunc, uint32_t N, uint32_t offset, b OCL_FINISH(); gettimeofday(&end, NULL); double elapsed = (end.tv_sec - start.tv_sec) * 1e6 + (end.tv_usec - start.tv_usec); - double bandwidth = (globals[0] * (N_ITERATIONS) * sizeof(T) * N) / elapsed; - printf("\t%2.1fGB/S\n", bandwidth/1000.); + double bandwidth = (globals[0] * (N_ITERATIONS) * sizeof(T) * N) / (elapsed * 1000.); + printf("\t%2.1fGB/S\n", bandwidth); return bandwidth; } else { // Check result @@ -71,7 +71,7 @@ VLOAD_TEST(float, float) #endif #define VLOAD_BENCH(T, kT) \ -static int vload_bench_ ##kT(void) \ +static double vload_bench_ ##kT(void) \ { \ uint8_t vectorSize[] = {2, 3, 4, 8, 16}; \ double totBandwidth = 0; \ |