diff options
author | Cedric Nugteren <web@cedricnugteren.nl> | 2018-05-27 18:38:47 +0200 |
---|---|---|
committer | Cedric Nugteren <web@cedricnugteren.nl> | 2018-05-27 18:38:47 +0200 |
commit | 01d254c0b09549bb7921d1c777d1d53042c5d466 (patch) | |
tree | 9737466294b6e91c5b8e1dd0d12d38f0b8b252c1 /src/routines/levelx | |
parent | 53198121acae87ed4e212f63579f3f5259a80bf3 (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/levelx')
-rw-r--r-- | src/routines/levelx/xinvert.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/routines/levelx/xinvert.cpp b/src/routines/levelx/xinvert.cpp index d851e0b9..65a28d73 100644 --- a/src/routines/levelx/xinvert.cpp +++ b/src/routines/levelx/xinvert.cpp @@ -49,6 +49,11 @@ void Xinvert<T>::InvertMatrixDiagonalBlocks(const Layout layout, const Triangle 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); + } + // Helper variables const auto internal_block_size = static_cast<size_t>(db_["INTERNAL_BLOCK_SIZE"]); assert(internal_block_size == 16); |