diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2016-03-25 10:30:38 +0100 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2016-03-25 10:30:38 +0100 |
commit | 1d5a702d9d31afa320a15ed9fa79471aec314f4a (patch) | |
tree | 52a073c0909b23c8e2c29e467c19c81dbcf34f5a /test/wrapper_clblas.h | |
parent | 3876096c30ad4eed5769dbc88dbfe75b7571718a (diff) |
Added prototypes for ScNRM2/DzNRM2 routines
Diffstat (limited to 'test/wrapper_clblas.h')
-rw-r--r-- | test/wrapper_clblas.h | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/test/wrapper_clblas.h b/test/wrapper_clblas.h index 501f0bc5..37d9eee5 100644 --- a/test/wrapper_clblas.h +++ b/test/wrapper_clblas.h @@ -350,7 +350,7 @@ clblasStatus clblasXdotc<double2>(const size_t n, num_queues, queues, num_wait_events, wait_events, events); } -// Forwards the clBLAS calls for SNRM2/DNRM2 +// Forwards the clBLAS calls for SNRM2/DNRM2/ScNRM2/DzNRM2 template <typename T> clblasStatus clblasXnrm2(const size_t n, cl_mem nrm2_buffer, const size_t nrm2_offset, @@ -387,6 +387,36 @@ clblasStatus clblasXnrm2<double>(const size_t n, scratch_buffer(), num_queues, queues, num_wait_events, wait_events, events); } +template <> +clblasStatus clblasXnrm2<float2>(const size_t n, + cl_mem nrm2_buffer, const size_t nrm2_offset, + const cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_uint num_queues, cl_command_queue *queues, + cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { + auto queue = Queue(queues[0]); + auto context = queue.GetContext(); + auto scratch_buffer = Buffer<float2>(context, n*x_inc + x_offset); + return clblasScnrm2(n, + nrm2_buffer, nrm2_offset, + x_buffer, x_offset, static_cast<int>(x_inc), + scratch_buffer(), + num_queues, queues, num_wait_events, wait_events, events); +} +template <> +clblasStatus clblasXnrm2<double2>(const size_t n, + cl_mem nrm2_buffer, const size_t nrm2_offset, + const cl_mem x_buffer, const size_t x_offset, const size_t x_inc, + cl_uint num_queues, cl_command_queue *queues, + cl_uint num_wait_events, const cl_event *wait_events, cl_event *events) { + auto queue = Queue(queues[0]); + auto context = queue.GetContext(); + auto scratch_buffer = Buffer<double2>(context, n*x_inc + x_offset); + return clblasDznrm2(n, + nrm2_buffer, nrm2_offset, + x_buffer, x_offset, static_cast<int>(x_inc), + scratch_buffer(), + num_queues, queues, num_wait_events, wait_events, events); +} // ================================================================================================= // BLAS level-2 (matrix-vector) routines |