diff options
| author | Tikhomirova, Kseniya <kseniya.tikhomirova@intel.com> | 2026-04-28 05:09:53 -0700 |
|---|---|---|
| committer | Tikhomirova, Kseniya <kseniya.tikhomirova@intel.com> | 2026-04-28 05:09:53 -0700 |
| commit | 9b8486e642d520a93732d42a65381ee136beec60 (patch) | |
| tree | 699eec6a0b0276154a33369782427a07430e08ff | |
| parent | 5a8767e8d7149281d84dade6640742347ec363fa (diff) | |
| download | llvm-users/KseniyaTikhomirova/kernel_submit_single_3.tar.gz llvm-users/KseniyaTikhomirova/kernel_submit_single_3.tar.bz2 llvm-users/KseniyaTikhomirova/kernel_submit_single_3.zip | |
fix commentsusers/KseniyaTikhomirova/kernel_submit_single_3
Signed-off-by: Tikhomirova, Kseniya <kseniya.tikhomirova@intel.com>
| -rw-r--r-- | libsycl/include/sycl/__impl/queue.hpp | 18 | ||||
| -rw-r--r-- | libsycl/src/detail/queue_impl.cpp | 4 |
2 files changed, 11 insertions, 11 deletions
diff --git a/libsycl/include/sycl/__impl/queue.hpp b/libsycl/include/sycl/__impl/queue.hpp index 254512fecd86..6b9e24b8f66a 100644 --- a/libsycl/include/sycl/__impl/queue.hpp +++ b/libsycl/include/sycl/__impl/queue.hpp @@ -33,18 +33,19 @@ class context; namespace detail { class QueueImpl; -template <typename, typename T> struct CheckFunctionSignature { +template <typename, typename T> struct CheckFunctionCallOperator { static_assert(std::integral_constant<T, false>::value, "Second template parameter is required to be of function type"); }; template <typename F, typename RetT, typename... Args> -struct CheckFunctionSignature<F, RetT(Args...)> { +struct CheckFunctionCallOperator<F, RetT(Args...)> { private: template <typename T> - static constexpr auto check(T *) -> typename std::is_same< - decltype(std::declval<T>().operator()(std::declval<Args>()...)), - RetT>::type; + static constexpr auto check(T *) -> + typename std::is_same<decltype(std::declval<std::add_const_t<T>>() + .operator()(std::declval<Args>()...)), + RetT>::type; template <typename> static constexpr std::false_type check(...); @@ -195,10 +196,9 @@ public: event single_task(const std::vector<event> &depEvents, const KernelType &kernelFunc) { static_assert( - detail::CheckFunctionSignature<std::remove_reference_t<KernelType>, - void()>::value, - "sycl::queue::single_task() requires a kernel instead of a command " - "group"); + detail::CheckFunctionCallOperator<std::remove_reference_t<KernelType>, + void()>::value, + "Invalid kernel function signature."); setKernelParameters(depEvents); submitSingleTask<KernelName, KernelType>(kernelFunc); diff --git a/libsycl/src/detail/queue_impl.cpp b/libsycl/src/detail/queue_impl.cpp index 5d1129ef58bf..447afbff671f 100644 --- a/libsycl/src/detail/queue_impl.cpp +++ b/libsycl/src/detail/queue_impl.cpp @@ -32,9 +32,9 @@ static void setKernelLaunchArgs(const detail::UnifiedRangeView &Range, uint32_t GroupSize[3] = {1, 1, 1}; if (Range.MLocalSize) { for (size_t I = 0; I < Range.MDims; ++I) { + assert(Range.MLocalSize[I] <= std::numeric_limits<uint32_t>::max() && + Range.MLocalSize[I] != 0); GroupSize[I] = static_cast<uint32_t>(Range.MLocalSize[I]); - assert(GroupSize[I] && "Local range contains zero size. Causes division " - "by zero for group range counting."); } } |
