diff options
Diffstat (limited to 'src/kernels/level1/xscal.opencl')
-rw-r--r-- | src/kernels/level1/xscal.opencl | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/kernels/level1/xscal.opencl b/src/kernels/level1/xscal.opencl index 61ff5bb6..3da9c2fd 100644 --- a/src/kernels/level1/xscal.opencl +++ b/src/kernels/level1/xscal.opencl @@ -23,8 +23,9 @@ R"( // Full version of the kernel with offsets and strided accesses __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) -void Xscal(const int n, const real alpha, - __global real* xgm, const int x_offset, const int x_inc) { +void Xscal(const int n, const real_arg arg_alpha, + __global real* xgm, const int x_offset, const int x_inc) { + const real alpha = GetRealArg(arg_alpha); // Loops over the work that needs to be done (allows for an arbitrary number of threads) #pragma unroll @@ -41,8 +42,10 @@ void Xscal(const int n, const real alpha, // Faster version of the kernel without offsets and strided accesses. Also assumes that 'n' is // dividable by 'VW', 'WGS' and 'WPT'. __kernel __attribute__((reqd_work_group_size(WGS, 1, 1))) -void XscalFast(const int n, const real alpha, - __global realV* xgm) { +void XscalFast(const int n, const real_arg arg_alpha, + __global realV* xgm) { + const real alpha = GetRealArg(arg_alpha); + #pragma unroll for (int w=0; w<WPT; ++w) { const int id = w*get_global_size(0) + get_global_id(0); |