From ba2816a934dab05e6a293731acbedd3b20b7a465 Mon Sep 17 00:00:00 2001 From: Gail Lyons Date: Wed, 2 Sep 2020 06:11:09 -0700 Subject: [PATCH 1/6] Added an assert to piEnqueueKernelLaunch() when the GlobalWorkOffset!=0. GlobalWorkOffset is not currently supported in Level Zero. Now the function will assert if someone tries to use it. Signed-off-by: Gail Lyons --- sycl/plugins/level_zero/pi_level_zero.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index 2c6c95d2f608..ad5ab5189650 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -2614,6 +2614,7 @@ piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, assert(Kernel); assert(Queue); assert((WorkDim > 0) && (WorkDim < 4)); + assert(GlobalWorkOffset[0] == 0); ze_group_count_t ZeThreadGroupDimensions{1, 1, 1}; uint32_t WG[3]; From 183585c5c52af4ef2ec96af4fc79a41c92188c5a Mon Sep 17 00:00:00 2001 From: Gail Lyons Date: Wed, 2 Sep 2020 10:09:27 -0700 Subject: [PATCH 2/6] Incorporating code review comments Signed-off-by: Gail Lyons --- sycl/plugins/level_zero/pi_level_zero.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index ad5ab5189650..608727695a9c 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -2614,7 +2614,11 @@ piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, assert(Kernel); assert(Queue); assert((WorkDim > 0) && (WorkDim < 4)); - assert(GlobalWorkOffset[0] == 0); + if (GlobalWorkOffset != NULL) { + for(pi_uint32 i=0; i Date: Wed, 2 Sep 2020 11:05:09 -0700 Subject: [PATCH 3/6] Incorporating code review comments Signed-off-by: Gail Lyons --- sycl/plugins/level_zero/pi_level_zero.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index 608727695a9c..4690984749f6 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -2615,7 +2615,7 @@ piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, assert(Queue); assert((WorkDim > 0) && (WorkDim < 4)); if (GlobalWorkOffset != NULL) { - for(pi_uint32 i=0; i Date: Tue, 8 Sep 2020 12:39:20 -0700 Subject: [PATCH 4/6] Indicate that this test is expected to fail on level_zero. The global work offset is not supported on level zero today. I am adding an assertion to piEnqueueKernelLaunch() to catch when the global work offset is not zero. This test uses the global work offset, so I am indicating that it will fail. Signed-off-by: Gail Lyons --- .../free_function_queries/free_function_queries.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sycl/test/basic_tests/free_function_queries/free_function_queries.cpp b/sycl/test/basic_tests/free_function_queries/free_function_queries.cpp index 459728120afe..c410261d06e0 100644 --- a/sycl/test/basic_tests/free_function_queries/free_function_queries.cpp +++ b/sycl/test/basic_tests/free_function_queries/free_function_queries.cpp @@ -4,6 +4,9 @@ // RUN: %CPU_RUN_PLACEHOLDER %t.out // RUN: %GPU_RUN_PLACEHOLDER %t.out +// TODO: Support global work offset on Level Zero. +// XFAIL: level_zero + //==- free_function_queries.cpp - SYCL free function queries test -=// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. From 0812f411eee1cfeb3624eaa77d040751774a6b0d Mon Sep 17 00:00:00 2001 From: Gail Lyons Date: Wed, 16 Sep 2020 07:03:51 -0700 Subject: [PATCH 5/6] Reverting my patch to debug a windows testing issue. Signed-off-by: Gail Lyons --- sycl/plugins/level_zero/pi_level_zero.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index 56a85503e43c..1eb6c361c1f4 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -2793,12 +2793,13 @@ piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, assert(Kernel); assert(Queue); assert((WorkDim > 0) && (WorkDim < 4)); +#if 0 // debugging a testing issue. if (GlobalWorkOffset != NULL) { for (pi_uint32 i = 0; i < WorkDim; i++) { assert(GlobalWorkOffset[i] == 0); } } - +#endif ze_group_count_t ZeThreadGroupDimensions{1, 1, 1}; uint32_t WG[3]; From 736fe4a8cc6882c955210c9ea0f0fca2e4daa779 Mon Sep 17 00:00:00 2001 From: Gail Lyons Date: Thu, 17 Sep 2020 07:10:49 -0700 Subject: [PATCH 6/6] Reimplementing my patch. Signed-off-by: Gail Lyons --- sycl/plugins/level_zero/pi_level_zero.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sycl/plugins/level_zero/pi_level_zero.cpp b/sycl/plugins/level_zero/pi_level_zero.cpp index 1eb6c361c1f4..56a85503e43c 100644 --- a/sycl/plugins/level_zero/pi_level_zero.cpp +++ b/sycl/plugins/level_zero/pi_level_zero.cpp @@ -2793,13 +2793,12 @@ piEnqueueKernelLaunch(pi_queue Queue, pi_kernel Kernel, pi_uint32 WorkDim, assert(Kernel); assert(Queue); assert((WorkDim > 0) && (WorkDim < 4)); -#if 0 // debugging a testing issue. if (GlobalWorkOffset != NULL) { for (pi_uint32 i = 0; i < WorkDim; i++) { assert(GlobalWorkOffset[i] == 0); } } -#endif + ze_group_count_t ZeThreadGroupDimensions{1, 1, 1}; uint32_t WG[3];