[llvm-branch-commits] [llvm] [libsycl] Add parallel_for feature (PR #189068)
Sergey Semenov via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Apr 24 06:25:48 PDT 2026
================
@@ -179,35 +159,191 @@ class _LIBSYCL_EXPORT queue {
/// \param depEvent is an event that specifies the kernel dependency.
/// \param kernelFunc is the kernel functor or lambda.
/// \return an event that represents the status of the submitted kernel.
- template <typename KernelName, typename KernelType>
+ template <typename KernelName = detail::AutoName, typename KernelType>
event single_task(event depEvent, const KernelType &kernelFunc) {
return single_task<KernelName, KernelType>({depEvent}, kernelFunc);
}
/// Defines and invokes a SYCL kernel function as a lambda expression or a
/// named function object type.
///
- /// \param depEvents is a collection of events that specify the kernel
+ /// \param depEvents is a collection of events which specify the kernel
/// dependencies.
/// \param kernelFunc is the kernel functor or lambda.
/// \return an event that represents the status of the submitted kernel.
- template <typename KernelName, typename KernelType>
+ template <typename KernelName = detail::AutoName, typename KernelType>
event single_task(const std::vector<event> &depEvents,
const KernelType &kernelFunc) {
static_assert(
- detail::CheckFunctionSignature<std::remove_reference_t<KernelType>,
- void()>::value,
+ (detail::CheckFunctionSignature<std::remove_reference_t<KernelType>,
+ void()>::value),
"sycl::queue::single_task() requires a kernel instead of a command "
"group");
setKernelParameters(depEvents);
- submitSingleTask<KernelName, KernelType>(kernelFunc);
+ using NameT =
+ typename detail::get_kernel_name_t<KernelName, KernelType>::name;
+ submitSingleTask<NameT, KernelType>(kernelFunc);
return getLastEvent();
}
+ /// Defines and invokes a SYCL kernel function as a lambda expression or a
+ /// named function object type, for the specified range.
+ ///
+ /// \param numWorkItems specifies the global work space of the kernel.
+ /// \param rest acts as-if: const KernelType &KernelFunc".
----------------
sergey-semenov wrote:
```suggestion
/// \param rest acts as if it was "const KernelType &KernelFunc".
```
The same goes for the other functions
https://github.com/llvm/llvm-project/pull/189068
More information about the llvm-branch-commits
mailing list