diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2017-04-10 22:54:14 +0200 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2017-04-10 22:54:14 +0200 |
commit | 6b625f8915ce0596d65187bd3a8eb47e91a0084e (patch) | |
tree | ed16d34e567e52667f74131ff09f0673619dd661 /test/routines/level2/xgbmv.hpp | |
parent | 22b3ea9256bd197da3cd320560c14e5f3bd7fb86 (diff) |
Added reference implementations for performance-testing against cuBLAS
Diffstat (limited to 'test/routines/level2/xgbmv.hpp')
-rw-r--r-- | test/routines/level2/xgbmv.hpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/routines/level2/xgbmv.hpp b/test/routines/level2/xgbmv.hpp index fb36d7f2..77abcfff 100644 --- a/test/routines/level2/xgbmv.hpp +++ b/test/routines/level2/xgbmv.hpp @@ -123,6 +123,19 @@ class TestXgbmv { } #endif + // Describes how to run the cuBLAS routine (for correctness/performance comparison) + #ifdef CLBLAST_REF_CUBLAS + static StatusCode RunReference3(const Arguments<T> &args, BuffersCUDA<T> &buffers, Queue &) { + auto status = cublasXgbmv(args.layout, + convertToCUBLAS(args.a_transpose), + args.m, args.n, args.kl, args.ku, args.alpha, + buffers.a_mat, args.a_offset, args.a_ld, + buffers.x_vec, args.x_offset, args.x_inc, args.beta, + buffers.y_vec, args.y_offset, args.y_inc); + if (status == CUBLAS_STATUS_SUCCESS) { return StatusCode::kSuccess; } else { return StatusCode::kUnknownError; } + } + #endif + // Describes how to download the results of the computation (more importantly: which buffer) static std::vector<T> DownloadResult(const Arguments<T> &args, Buffers<T> &buffers, Queue &queue) { std::vector<T> result(args.y_size, static_cast<T>(0)); |