summaryrefslogtreecommitdiff
path: root/src/routines/levelx/xinvert.cpp
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2018-06-01 20:59:27 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2018-06-01 20:59:44 +0200
commit7c3431a72ae091703a7f36999f2b5a0cd8189220 (patch)
tree1890e22761db0660cad3960412f5c9851bcc6fd2 /src/routines/levelx/xinvert.cpp
parent5702bff5ad579466397f6537dc8925ebd64e3ba3 (diff)
Fixes for Apple OpenCL CPU implementation which requires a LWGS of 1 when barriers are present
Diffstat (limited to 'src/routines/levelx/xinvert.cpp')
-rw-r--r--src/routines/levelx/xinvert.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/routines/levelx/xinvert.cpp b/src/routines/levelx/xinvert.cpp
index 99f196ec..eea8527a 100644
--- a/src/routines/levelx/xinvert.cpp
+++ b/src/routines/levelx/xinvert.cpp
@@ -56,7 +56,9 @@ void Xinvert<T>::InvertMatrixDiagonalBlocks(const Layout layout, const Triangle
// Helper variables
const auto internal_block_size = static_cast<size_t>(db_["INTERNAL_BLOCK_SIZE"]);
- assert(internal_block_size == 16);
+ if (internal_block_size != 16) {
+ throw RuntimeErrorCode(StatusCode::kNotImplemented); // e.g. Apple CPU OpenCL with a WGS of 1
+ } // when barriers are present
const auto num_blocks = CeilDiv(n, block_size);
const auto num_internal_blocks = CeilDiv(n, internal_block_size);
const auto unit_diagonal = (diag == Diagonal::kUnit) ? true : false;