[llvm] [libsycl] Implement nd_range kernel submissions (PR #206505)

Kseniya Tikhomirova via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 30 05:31:35 PDT 2026


================
@@ -47,14 +47,32 @@ int main() {
     A[i.get_linear_id()]++;
   });
 
-  // TODO: add kernel with offset and kernel with nd_range once they
-  // are implemented.
+  sycl::nd_range<1> NDR(sycl::range<1>{N}, sycl::range<1>{2});
+  Q.parallel_for<class NdRange1D>(NDR, [=](auto nd_i) {
+    static_assert(std::is_same<decltype(nd_i), sycl::nd_item<1>>::value,
+                  "lambda arg type is unexpected");
+    A[nd_i.get_global_id()]++;
+  });
+
+  sycl::nd_range<2> NDR2D(sycl::range<2>{4, 2}, sycl::range<2>{2, 1});
+  Q.parallel_for<class NdRange2D>(NDR2D, [=](auto nd_i) {
+    static_assert(std::is_same<decltype(nd_i), sycl::nd_item<2>>::value,
+                  "lambda arg type is unexpected");
+    A[nd_i.get_global_linear_id()]++;
+  });
+
+  sycl::nd_range<3> NDR3D(sycl::range<3>{2, 2, 2}, sycl::range<3>{1, 2, 2});
----------------
KseniyaTikhomirova wrote:

it would be easier to test function that makes swap in UT. Would it be sufficient?

https://github.com/llvm/llvm-project/pull/206505


More information about the llvm-commits mailing list