From 9d11577fbabb2c7c97de984a2a084be232f9c17a Mon Sep 17 00:00:00 2001 From: Frederik Hennig <frederik.hennig@fau.de> Date: Wed, 10 Jul 2024 12:28:02 +0200 Subject: [PATCH] fix SYCL order of dimensions --- src/pystencils/backend/platforms/sycl.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/pystencils/backend/platforms/sycl.py b/src/pystencils/backend/platforms/sycl.py index fdc19a0c4..52953115a 100644 --- a/src/pystencils/backend/platforms/sycl.py +++ b/src/pystencils/backend/platforms/sycl.py @@ -101,7 +101,13 @@ class SyclPlatform(GenericGpu): indexing_decls = [id_decl] conds = [] - for i, dim in enumerate(dimensions[::-1]): + + # Other than in CUDA, SYCL ids are linearized in C order + # The leftmost entry of an ID varies slowest, and the rightmost entry varies fastest + # See https://registry.khronos.org/SYCL/specs/sycl-2020/html/sycl-2020.html#sec:multi-dim-linearization + + for i, dim in enumerate(dimensions): + # Slowest to fastest coord = PsExpression.make(PsConstant(i, self._ctx.index_dtype)) work_item_idx = PsSubscript(id_symbol, coord) -- GitLab