summaryrefslogtreecommitdiff
path: root/test/routines/level2/xtpmv.hpp
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2017-04-01 13:36:24 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2017-04-01 13:36:24 +0200
commitb84d2296b87ac212474af855d916b12adf96bdb7 (patch)
tree0f2e85e1e1acef1d22f046499dd0b8a30e5da4f9 /test/routines/level2/xtpmv.hpp
parenta98c00a2671b8981579f3a73dca8fb3365a95e53 (diff)
Separated host-device and device-host memory copies from execution of the CBLAS reference code; for fair timing and code de-duplication
Diffstat (limited to 'test/routines/level2/xtpmv.hpp')
-rw-r--r--test/routines/level2/xtpmv.hpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/test/routines/level2/xtpmv.hpp b/test/routines/level2/xtpmv.hpp
index 3821e1a4..7f4842f0 100644
--- a/test/routines/level2/xtpmv.hpp
+++ b/test/routines/level2/xtpmv.hpp
@@ -44,6 +44,8 @@ class TestXtpmv {
kArgXInc,
kArgAPOffset, kArgXOffset};
}
+ static std::vector<std::string> BuffersIn() { return {kBufMatAP, kBufVecX}; }
+ static std::vector<std::string> BuffersOut() { return {kBufVecX}; }
// Describes how to obtain the sizes of the buffers
static size_t GetSizeX(const Arguments<T> &args) {
@@ -107,19 +109,14 @@ class TestXtpmv {
// Describes how to run the CPU BLAS routine (for correctness/performance comparison)
#ifdef CLBLAST_REF_CBLAS
- static StatusCode RunReference2(const Arguments<T> &args, Buffers<T> &buffers, Queue &queue) {
- std::vector<T> ap_mat_cpu(args.ap_size, static_cast<T>(0));
- std::vector<T> x_vec_cpu(args.x_size, static_cast<T>(0));
- buffers.ap_mat.Read(queue, args.ap_size, ap_mat_cpu);
- buffers.x_vec.Read(queue, args.x_size, x_vec_cpu);
+ static StatusCode RunReference2(const Arguments<T> &args, BuffersHost<T> &buffers_host, Queue &) {
cblasXtpmv(convertToCBLAS(args.layout),
convertToCBLAS(args.triangle),
convertToCBLAS(args.a_transpose),
convertToCBLAS(args.diagonal),
args.n,
- ap_mat_cpu, args.ap_offset,
- x_vec_cpu, args.x_offset, args.x_inc);
- buffers.x_vec.Write(queue, args.x_size, x_vec_cpu);
+ buffers_host.ap_mat, args.ap_offset,
+ buffers_host.x_vec, args.x_offset, args.x_inc);
return StatusCode::kSuccess;
}
#endif