From 07fe7e9a0f02ba3a9ead46d4924ef971636f8f50 Mon Sep 17 00:00:00 2001 From: Guilherme Date: Thu, 9 Mar 2023 15:56:16 +0100 Subject: [PATCH] Remove return in CCL_kernel --- .../src/clusterization/clusterization_algorithm.sycl | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/device/sycl/src/clusterization/clusterization_algorithm.sycl b/device/sycl/src/clusterization/clusterization_algorithm.sycl index bb17267087..91c1bc06fc 100644 --- a/device/sycl/src/clusterization/clusterization_algorithm.sycl +++ b/device/sycl/src/clusterization/clusterization_algorithm.sycl @@ -254,8 +254,8 @@ class ccl_kernel { unsigned char adjc[MAX_CELLS_PER_THREAD]; // It seems that sycl runs into undefined behaviour when calling - // any_of_group when some threads have already run into a return. So can - // only do this after running the FastSV algorithm. + // group synchronisation functions when some threads have already run + // into a return. As such, we cannot use returns in this kernel. #pragma unroll for (index_t tst = 0; tst < MAX_CELLS_PER_THREAD; ++tst) { @@ -295,11 +295,6 @@ class ccl_kernel { item.barrier(); - // Now that we can use return, check if any work needs to be done - if (tid >= size) { - return; - } - /* * Count the number of clusters by checking how many cells have * themself assigned as a parent.