[llvm] [libsycl] Implement nd_range kernel submissions (PR #206505)
Sergey Semenov via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 15 07:49:10 PDT 2026
================
@@ -380,21 +408,37 @@ class _LIBSYCL_EXPORT queue {
using KernelType =
std::decay_t<detail::nth_type_t<sizeof...(Rest) - 1, Rest...>>;
- using LambdaArgType = sycl::detail::lambda_arg_type<KernelType, item<Dims>>;
- static_assert(
- std::is_convertible_v<sycl::item<Dims>, LambdaArgType> ||
- std::is_convertible_v<sycl::item<Dims, false>, LambdaArgType>,
- "Kernel argument of a sycl::parallel_for with sycl::range "
- "must be either sycl::item or be convertible from sycl::item");
- using TranformedLambdaArgType = std::conditional_t<
- std::is_convertible_v<item<Dims>, LambdaArgType>, item<Dims>,
+ constexpr bool IsNdRangeSubmission =
+ std::is_same_v<Range<Dims>, nd_range<Dims>>;
+ using SuggestedArgType =
+ std::conditional_t<IsNdRangeSubmission, nd_item<Dims>, item<Dims>>;
+ using LambdaArgType =
+ sycl::detail::lambda_arg_type<KernelType, SuggestedArgType>;
+
+ if constexpr (IsNdRangeSubmission) {
+ static_assert(
+ std::is_convertible_v<sycl::nd_item<Dims>, LambdaArgType>,
+ "Kernel argument of a sycl::parallel_for with sycl::nd_range "
+ "must be sycl::nd_item");
----------------
sergey-semenov wrote:
```suggestion
"must be sycl::nd_item or be convertible from sycl::nd_item");
```
https://github.com/llvm/llvm-project/pull/206505
More information about the llvm-commits
mailing list