summaryrefslogtreecommitdiff
path: root/src/kernels/level2
diff options
context:
space:
mode:
authorGard Spreemann <gspr@nonempty.org>2023-06-08 11:52:00 +0200
committerGard Spreemann <gspr@nonempty.org>2023-06-08 11:52:00 +0200
commit63870a2e60c1bc8bfa7e3672457b551a8e51ffaf (patch)
treefe2c0cd5f62e3fbd17e58d3903ec6bb37983f620 /src/kernels/level2
parentd31fb141cb597aaf405674621aa25f263aa375e1 (diff)
parentb0b302889cc786907efb080c4e1beea30d2fa39f (diff)
Merge tag '1.6.0' into gspr/post-bookworm
Diffstat (limited to 'src/kernels/level2')
-rw-r--r--src/kernels/level2/xgemv.opencl6
-rw-r--r--src/kernels/level2/xgemv_fast.opencl12
-rw-r--r--src/kernels/level2/xger.opencl6
-rw-r--r--src/kernels/level2/xher.opencl6
-rw-r--r--src/kernels/level2/xher2.opencl6
-rw-r--r--src/kernels/level2/xtrsv.opencl12
6 files changed, 40 insertions, 8 deletions
diff --git a/src/kernels/level2/xgemv.opencl b/src/kernels/level2/xgemv.opencl
index ba29aba6..15912a60 100644
--- a/src/kernels/level2/xgemv.opencl
+++ b/src/kernels/level2/xgemv.opencl
@@ -210,7 +210,11 @@ INLINE_FUNC real LoadMatrixA(const __global real* restrict agm, const int x, con
// =================================================================================================
// Full version of the kernel
-__kernel __attribute__((reqd_work_group_size(WGS1, 1, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(WGS1, 1, 1)))
+#endif
void Xgemv(const int m, const int n,
const real_arg arg_alpha,
const real_arg arg_beta,
diff --git a/src/kernels/level2/xgemv_fast.opencl b/src/kernels/level2/xgemv_fast.opencl
index 45ceb36c..46087af7 100644
--- a/src/kernels/level2/xgemv_fast.opencl
+++ b/src/kernels/level2/xgemv_fast.opencl
@@ -88,7 +88,11 @@ INLINE_FUNC realVF LoadMatrixAVF(const __global realVF* restrict agm, const int
// --> 'a_ld' is a multiple of VW2
// --> 'a_rotated' is 0
// --> 'do_conjugate' is 0
-__kernel __attribute__((reqd_work_group_size(WGS2, 1, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(WGS2, 1, 1)))
+#endif
void XgemvFast(const int m, const int n,
const real_arg arg_alpha,
const real_arg arg_beta,
@@ -191,7 +195,11 @@ void XgemvFast(const int m, const int n,
// --> 'a_ld' is a multiple of VW3
// --> 'a_rotated' is 1
// --> 'do_conjugate' is 0
-__kernel __attribute__((reqd_work_group_size(WGS3, 1, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(WGS3, 1, 1)))
+#endif
void XgemvFastRot(const int m, const int n,
const real_arg arg_alpha,
const real_arg arg_beta,
diff --git a/src/kernels/level2/xger.opencl b/src/kernels/level2/xger.opencl
index ca6071cd..b1fe8447 100644
--- a/src/kernels/level2/xger.opencl
+++ b/src/kernels/level2/xger.opencl
@@ -18,7 +18,11 @@ R"(
// =================================================================================================
// Regular version of the rank-1 matrix update kernel (GER, GERU, GERC)
-__kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1)))
+#endif
void Xger(const int max1, const int max2,
const real_arg arg_alpha,
const __global real* restrict xgm, const int x_offset, const int x_inc,
diff --git a/src/kernels/level2/xher.opencl b/src/kernels/level2/xher.opencl
index 8a57bdfc..eac8c10a 100644
--- a/src/kernels/level2/xher.opencl
+++ b/src/kernels/level2/xher.opencl
@@ -18,7 +18,11 @@ R"(
// =================================================================================================
// Symmetric version of the rank-1 matrix update kernel (HER, HPR, SYR, SPR)
-__kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1)))
+#endif
void Xher(const int n,
const real_arg arg_alpha,
const __global real* restrict xgm, const int x_offset, const int x_inc,
diff --git a/src/kernels/level2/xher2.opencl b/src/kernels/level2/xher2.opencl
index 73305149..9e7f3c6c 100644
--- a/src/kernels/level2/xher2.opencl
+++ b/src/kernels/level2/xher2.opencl
@@ -18,7 +18,11 @@ R"(
// =================================================================================================
// Symmetric version of the rank-2 matrix update kernel (HER2, HPR2, SYR2, SPR2)
-__kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(WGS1, WGS2, 1)))
+#endif
void Xher2(const int n,
const real_arg arg_alpha,
const __global real* restrict xgm, const int x_offset, const int x_inc,
diff --git a/src/kernels/level2/xtrsv.opencl b/src/kernels/level2/xtrsv.opencl
index e7b6ae79..7677377e 100644
--- a/src/kernels/level2/xtrsv.opencl
+++ b/src/kernels/level2/xtrsv.opencl
@@ -39,7 +39,11 @@ void FillVector(const int n, const int inc, const int offset,
// =================================================================================================
-__kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1)))
+#endif
void trsv_forward(int n,
const __global real *A, const int a_offset, int a_ld,
__global real *b, const int b_offset, int b_inc,
@@ -87,7 +91,11 @@ void trsv_forward(int n,
}
}
-__kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1)))
+#if RELAX_WORKGROUP_SIZE == 1
+ __kernel
+#else
+ __kernel __attribute__((reqd_work_group_size(TRSV_BLOCK_SIZE, 1, 1)))
+#endif
void trsv_backward(int n,
const __global real *A, const int a_offset, int a_ld,
__global real *b, const int b_offset, int b_inc,