summaryrefslogtreecommitdiff
path: root/src/routines/level2
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2018-05-27 18:38:47 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2018-05-27 18:38:47 +0200
commit01d254c0b09549bb7921d1c777d1d53042c5d466 (patch)
tree9737466294b6e91c5b8e1dd0d12d38f0b8b252c1 /src/routines/level2
parent53198121acae87ed4e212f63579f3f5259a80bf3 (diff)
Added a check to return 'NotImplemented' error code in case of systems with < 16 LWGS for TSRV and TRSM
Diffstat (limited to 'src/routines/level2')
-rw-r--r--src/routines/level2/xtrsv.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/routines/level2/xtrsv.cpp b/src/routines/level2/xtrsv.cpp
index c474db4c..5d2ddf54 100644
--- a/src/routines/level2/xtrsv.cpp
+++ b/src/routines/level2/xtrsv.cpp
@@ -87,6 +87,11 @@ void Xtrsv<T>::DoTrsv(const Layout layout, const Triangle triangle,
// Makes sure all dimensions are larger than zero
if (n == 0) { throw BLASError(StatusCode::kInvalidDimension); }
+ // Some parts of this kernel are not tunable and thus require some minimal OpenCL properties
+ if (device_.MaxWorkGroupSize() < 16) { // minimum of total local work size of 16
+ throw RuntimeErrorCode(StatusCode::kNotImplemented);
+ }
+
// Tests the matrix and vector
TestMatrixA(n, n, a_buffer, a_offset, a_ld);
TestVectorX(n, b_buffer, b_offset, b_inc);