Skip to content

Commit 2b96dd3

Browse files
[SYCL] Introduce nd_range_view and integrate with handler-less path (#20531)
Introduced an nd_range_view type, which is a wrapper for nd_range and range types. This allows for the ABI simplification. This PR changes the handler-less related ABI to use the new type. --------- Co-authored-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
1 parent 717967c commit 2b96dd3

16 files changed

+186
-97
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
//==---- nd_range_view.hpp --- SYCL iteration with reference to ranges ---==//
2+
//
3+
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4+
// See https://llvm.org/LICENSE.txt for license information.
5+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6+
//
7+
//===----------------------------------------------------------------------===//
8+
9+
#pragma once
10+
11+
#include <sycl/nd_range.hpp>
12+
13+
namespace sycl {
14+
inline namespace _V1 {
15+
namespace detail {
16+
17+
class NDRDescT;
18+
19+
inline namespace nd_range_view_v1 {
20+
21+
// The structure to keep dimension and references to ranges unified for
22+
// all dimensions.
23+
class nd_range_view {
24+
25+
public:
26+
nd_range_view() = default;
27+
nd_range_view(const nd_range_view &Desc) = default;
28+
nd_range_view(nd_range_view &&Desc) = default;
29+
nd_range_view &operator=(const nd_range_view &Desc) = default;
30+
nd_range_view &operator=(nd_range_view &&Desc) = default;
31+
32+
template <int Dims_>
33+
nd_range_view(sycl::nd_range<Dims_> &ExecutionRange)
34+
: MGlobalSize(&(ExecutionRange.globalSize[0])),
35+
MLocalSize(&(ExecutionRange.localSize[0])),
36+
MOffset(&(ExecutionRange.offset[0])), MDims{size_t(Dims_)} {}
37+
38+
const size_t *MGlobalSize = nullptr;
39+
const size_t *MLocalSize = nullptr;
40+
const size_t *MOffset = nullptr;
41+
size_t MDims = 1;
42+
};
43+
44+
} // namespace nd_range_view_v1
45+
46+
} // namespace detail
47+
} // namespace _V1
48+
} // namespace sycl

sycl/include/sycl/nd_range.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
namespace sycl {
1616
inline namespace _V1 {
1717

18+
namespace detail {
19+
inline namespace nd_range_view_v1 {
20+
class nd_range_view;
21+
}
22+
} // namespace detail
23+
1824
/// Defines the iteration domain of both the work-groups and the overall
1925
/// dispatch.
2026
///
@@ -65,6 +71,8 @@ template <int Dimensions = 1> class nd_range {
6571
bool operator!=(const nd_range<Dimensions> &rhs) const {
6672
return !(*this == rhs);
6773
}
74+
75+
friend class sycl::_V1::detail::nd_range_view;
6876
};
6977

7078
} // namespace _V1

sycl/include/sycl/queue.hpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <sycl/detail/id_queries_fit_in_int.hpp> // for checkValueRange
2222
#include <sycl/detail/info_desc_helpers.hpp> // for is_queue_info_...
2323
#include <sycl/detail/kernel_desc.hpp> // for KernelInfo
24+
#include <sycl/detail/nd_range_view.hpp>
2425
#include <sycl/detail/optional.hpp>
2526
#include <sycl/detail/owner_less_base.hpp> // for OwnerLessBase
2627
#include <sycl/device.hpp> // for device
@@ -64,18 +65,16 @@ template <backend BackendName, class SyclObjectT>
6465
auto get_native(const SyclObjectT &Obj)
6566
-> backend_return_t<BackendName, SyclObjectT>;
6667

67-
template <int Dims>
6868
event __SYCL_EXPORT submit_kernel_direct_with_event_impl(
69-
const queue &Queue, const nd_range<Dims> &Range,
69+
const queue &Queue, const detail::nd_range_view &RangeView,
7070
detail::HostKernelRefBase &HostKernel,
7171
detail::DeviceKernelInfo *DeviceKernelInfo,
7272
sycl::span<const event> DepEvents,
7373
const detail::KernelPropertyHolderStructTy &Props,
7474
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
7575

76-
template <int Dims>
7776
void __SYCL_EXPORT submit_kernel_direct_without_event_impl(
78-
const queue &Queue, const nd_range<Dims> &Range,
77+
const queue &Queue, const detail::nd_range_view &RangeView,
7978
detail::HostKernelRefBase &HostKernel,
8079
detail::DeviceKernelInfo *DeviceKernelInfo,
8180
sycl::span<const event> DepEvents,
@@ -167,7 +166,7 @@ template <detail::WrapAs WrapAs, typename LambdaArgType,
167166
typename PropertiesT = ext::oneapi::experimental::empty_properties_t,
168167
typename KernelTypeUniversalRef, int Dims>
169168
auto submit_kernel_direct(
170-
const queue &Queue, const nd_range<Dims> &Range,
169+
const queue &Queue, const detail::nd_range_view &RangeView,
171170
KernelTypeUniversalRef &&KernelFunc, sycl::span<const event> DepEvents,
172171
const PropertiesT &ExtraProps =
173172
ext::oneapi::experimental::empty_properties_t{},
@@ -233,12 +232,12 @@ auto submit_kernel_direct(
233232

234233
if constexpr (EventNeeded) {
235234
return submit_kernel_direct_with_event_impl(
236-
Queue, Range, HostKernel, DeviceKernelInfoPtr, DepEvents,
235+
Queue, RangeView, HostKernel, DeviceKernelInfoPtr, DepEvents,
237236
ParsedProperties, TlsCodeLocCapture.query(),
238237
TlsCodeLocCapture.isToplevel());
239238
} else {
240239
submit_kernel_direct_without_event_impl(
241-
Queue, Range, HostKernel, DeviceKernelInfoPtr, DepEvents,
240+
Queue, RangeView, HostKernel, DeviceKernelInfoPtr, DepEvents,
242241
ParsedProperties, TlsCodeLocCapture.query(),
243242
TlsCodeLocCapture.isToplevel());
244243
}
@@ -248,7 +247,7 @@ template <typename KernelName = detail::auto_name, bool EventNeeded = false,
248247
typename PropertiesT = ext::oneapi::experimental::empty_properties_t,
249248
typename KernelTypeUniversalRef, int Dims>
250249
auto submit_kernel_direct_parallel_for(
251-
const queue &Queue, const nd_range<Dims> &Range,
250+
const queue &Queue, nd_range<Dims> Range,
252251
KernelTypeUniversalRef &&KernelFunc, sycl::span<const event> DepEvents = {},
253252
const PropertiesT &Props = ext::oneapi::experimental::empty_properties_t{},
254253
const detail::code_location &CodeLoc = detail::code_location::current()) {
@@ -271,8 +270,9 @@ auto submit_kernel_direct_parallel_for(
271270
return submit_kernel_direct<detail::WrapAs::parallel_for, TransformedArgType,
272271
KernelName, EventNeeded, PropertiesT,
273272
KernelTypeUniversalRef, Dims>(
274-
Queue, Range, std::forward<KernelTypeUniversalRef>(KernelFunc), DepEvents,
275-
Props, CodeLoc);
273+
Queue, detail::nd_range_view(Range),
274+
std::forward<KernelTypeUniversalRef>(KernelFunc), DepEvents, Props,
275+
CodeLoc);
276276
}
277277

278278
template <typename KernelName = detail::auto_name, bool EventNeeded = false,
@@ -287,7 +287,7 @@ auto submit_kernel_direct_single_task(
287287
return submit_kernel_direct<detail::WrapAs::single_task, void, KernelName,
288288
EventNeeded, PropertiesT, KernelTypeUniversalRef,
289289
1>(
290-
Queue, nd_range<1>{1, 1},
290+
Queue, detail::nd_range_view(),
291291
std::forward<KernelTypeUniversalRef>(KernelFunc), DepEvents, Props,
292292
CodeLoc);
293293
}

sycl/source/detail/ndrange_desc.hpp

Lines changed: 35 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
#pragma once
1010

11+
#include <sycl/detail/nd_range_view.hpp>
1112
#include <sycl/nd_range.hpp>
1213
#include <sycl/range.hpp>
1314

@@ -32,6 +33,15 @@ class NDRDescT {
3233
NDRDescT(const NDRDescT &Desc) = default;
3334
NDRDescT(NDRDescT &&Desc) = default;
3435

36+
NDRDescT(const detail::nd_range_view &NDRangeView) : Dims{NDRangeView.MDims} {
37+
if (!NDRangeView.MGlobalSize) {
38+
init();
39+
} else {
40+
init(NDRangeView.MGlobalSize, NDRangeView.MLocalSize,
41+
NDRangeView.MOffset);
42+
}
43+
}
44+
3545
template <int Dims_>
3646
NDRDescT(sycl::range<Dims_> N, bool SetNumWorkGroups) : Dims{size_t(Dims_)} {
3747
if (SetNumWorkGroups) {
@@ -43,7 +53,7 @@ class NDRDescT {
4353
GlobalSize[I] = N[I];
4454
}
4555

46-
for (int I = Dims_; I < 3; ++I) {
56+
for (size_t I = Dims_; I < 3; ++I) {
4757
GlobalSize[I] = 1;
4858
}
4959
}
@@ -53,19 +63,7 @@ class NDRDescT {
5363
NDRDescT(sycl::range<Dims_> NumWorkItems, sycl::range<Dims_> LocalSizes,
5464
sycl::id<Dims_> Offset)
5565
: Dims{size_t(Dims_)} {
56-
for (size_t I = 0; I < Dims_; ++I) {
57-
GlobalSize[I] = NumWorkItems[I];
58-
LocalSize[I] = LocalSizes[I];
59-
GlobalOffset[I] = Offset[I];
60-
}
61-
62-
for (int I = Dims_; I < 3; ++I) {
63-
LocalSize[I] = LocalSizes[0] ? 1 : 0;
64-
}
65-
66-
for (int I = Dims_; I < 3; ++I) {
67-
GlobalSize[I] = 1;
68-
}
66+
init(&(NumWorkItems[0]), &(LocalSizes[0]), &(Offset[0]));
6967
}
7068

7169
template <int Dims_>
@@ -109,6 +107,29 @@ class NDRDescT {
109107
std::array<size_t, 3> NumWorkGroups{0, 0, 0};
110108
std::array<size_t, 3> ClusterDimensions{1, 1, 1};
111109
size_t Dims = 0;
110+
111+
private:
112+
void init(const size_t *NumWorkItems, const size_t *LocalSizes,
113+
const size_t *Offset) {
114+
for (size_t I = 0; I < Dims; ++I) {
115+
GlobalSize[I] = NumWorkItems[I];
116+
LocalSize[I] = LocalSizes[I];
117+
GlobalOffset[I] = Offset[I];
118+
}
119+
120+
for (size_t I = Dims; I < 3; ++I) {
121+
LocalSize[I] = LocalSizes[0] ? 1 : 0;
122+
}
123+
124+
for (size_t I = Dims; I < 3; ++I) {
125+
GlobalSize[I] = 1;
126+
}
127+
}
128+
129+
void init() {
130+
size_t GlobalS = 1, LocalS = 1, Offset = 0;
131+
init(&GlobalS, &LocalS, &Offset);
132+
}
112133
};
113134

114135
} // namespace detail

sycl/source/detail/queue_impl.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -360,27 +360,27 @@ class queue_impl : public std::enable_shared_from_this<queue_impl> {
360360
return createSyclObjFromImpl<event>(ResEvent);
361361
}
362362

363-
template <int Dims>
364363
event submit_kernel_direct_with_event(
365-
const nd_range<Dims> &Range, detail::HostKernelRefBase &HostKernel,
364+
const detail::nd_range_view &RangeView,
365+
detail::HostKernelRefBase &HostKernel,
366366
detail::DeviceKernelInfo *DeviceKernelInfo,
367367
sycl::span<const event> DepEvents,
368368
const detail::KernelPropertyHolderStructTy &Props,
369369
const detail::code_location &CodeLoc, bool IsTopCodeLoc) {
370370
detail::EventImplPtr EventImpl = submit_kernel_direct_impl(
371-
NDRDescT{Range}, HostKernel, DeviceKernelInfo,
371+
NDRDescT(RangeView), HostKernel, DeviceKernelInfo,
372372
/*CallerNeedsEvent*/ true, DepEvents, Props, CodeLoc, IsTopCodeLoc);
373373
return createSyclObjFromImpl<event>(EventImpl);
374374
}
375375

376-
template <int Dims>
377376
void submit_kernel_direct_without_event(
378-
const nd_range<Dims> &Range, detail::HostKernelRefBase &HostKernel,
377+
const detail::nd_range_view &RangeView,
378+
detail::HostKernelRefBase &HostKernel,
379379
detail::DeviceKernelInfo *DeviceKernelInfo,
380380
sycl::span<const event> DepEvents,
381381
const detail::KernelPropertyHolderStructTy &Props,
382382
const detail::code_location &CodeLoc, bool IsTopCodeLoc) {
383-
submit_kernel_direct_impl(NDRDescT{Range}, HostKernel, DeviceKernelInfo,
383+
submit_kernel_direct_impl(NDRDescT(RangeView), HostKernel, DeviceKernelInfo,
384384
/*CallerNeedsEvent*/ false, DepEvents, Props,
385385
CodeLoc, IsTopCodeLoc);
386386
}

sycl/source/queue.cpp

Lines changed: 4 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -463,80 +463,30 @@ void queue::ext_oneapi_set_external_event(const event &external_event) {
463463

464464
const property_list &queue::getPropList() const { return impl->getPropList(); }
465465

466-
template <int Dims>
467466
event submit_kernel_direct_with_event_impl(
468-
const queue &Queue, const nd_range<Dims> &Range,
467+
const queue &Queue, const detail::nd_range_view &RangeView,
469468
detail::HostKernelRefBase &HostKernel,
470469
detail::DeviceKernelInfo *DeviceKernelInfo,
471470
sycl::span<const event> DepEvents,
472471
const detail::KernelPropertyHolderStructTy &Props,
473472
const detail::code_location &CodeLoc, bool IsTopCodeLoc) {
474473
return getSyclObjImpl(Queue)->submit_kernel_direct_with_event(
475-
Range, HostKernel, DeviceKernelInfo, DepEvents, Props, CodeLoc,
474+
RangeView, HostKernel, DeviceKernelInfo, DepEvents, Props, CodeLoc,
476475
IsTopCodeLoc);
477476
}
478477

479-
template event __SYCL_EXPORT submit_kernel_direct_with_event_impl<1>(
480-
const queue &Queue, const nd_range<1> &Range,
481-
detail::HostKernelRefBase &HostKernel,
482-
detail::DeviceKernelInfo *DeviceKernelInfo,
483-
sycl::span<const event> DepEvents,
484-
const detail::KernelPropertyHolderStructTy &Props,
485-
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
486-
487-
template event __SYCL_EXPORT submit_kernel_direct_with_event_impl<2>(
488-
const queue &Queue, const nd_range<2> &Range,
489-
detail::HostKernelRefBase &HostKernel,
490-
detail::DeviceKernelInfo *DeviceKernelInfo,
491-
sycl::span<const event> DepEvents,
492-
const detail::KernelPropertyHolderStructTy &Props,
493-
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
494-
495-
template event __SYCL_EXPORT submit_kernel_direct_with_event_impl<3>(
496-
const queue &Queue, const nd_range<3> &Range,
497-
detail::HostKernelRefBase &HostKernel,
498-
detail::DeviceKernelInfo *DeviceKernelInfo,
499-
sycl::span<const event> DepEvents,
500-
const detail::KernelPropertyHolderStructTy &Props,
501-
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
502-
503-
template <int Dims>
504478
void submit_kernel_direct_without_event_impl(
505-
const queue &Queue, const nd_range<Dims> &Range,
479+
const queue &Queue, const detail::nd_range_view &RangeView,
506480
detail::HostKernelRefBase &HostKernel,
507481
detail::DeviceKernelInfo *DeviceKernelInfo,
508482
sycl::span<const event> DepEvents,
509483
const detail::KernelPropertyHolderStructTy &Props,
510484
const detail::code_location &CodeLoc, bool IsTopCodeLoc) {
511485
getSyclObjImpl(Queue)->submit_kernel_direct_without_event(
512-
Range, HostKernel, DeviceKernelInfo, DepEvents, Props, CodeLoc,
486+
RangeView, HostKernel, DeviceKernelInfo, DepEvents, Props, CodeLoc,
513487
IsTopCodeLoc);
514488
}
515489

516-
template void __SYCL_EXPORT submit_kernel_direct_without_event_impl<1>(
517-
const queue &Queue, const nd_range<1> &Range,
518-
detail::HostKernelRefBase &HostKernel,
519-
detail::DeviceKernelInfo *DeviceKernelInfo,
520-
sycl::span<const event> DepEvents,
521-
const detail::KernelPropertyHolderStructTy &Props,
522-
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
523-
524-
template void __SYCL_EXPORT submit_kernel_direct_without_event_impl<2>(
525-
const queue &Queue, const nd_range<2> &Range,
526-
detail::HostKernelRefBase &HostKernel,
527-
detail::DeviceKernelInfo *DeviceKernelInfo,
528-
sycl::span<const event> DepEvents,
529-
const detail::KernelPropertyHolderStructTy &Props,
530-
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
531-
532-
template void __SYCL_EXPORT submit_kernel_direct_without_event_impl<3>(
533-
const queue &Queue, const nd_range<3> &Range,
534-
detail::HostKernelRefBase &HostKernel,
535-
detail::DeviceKernelInfo *DeviceKernelInfo,
536-
sycl::span<const event> DepEvents,
537-
const detail::KernelPropertyHolderStructTy &Props,
538-
const detail::code_location &CodeLoc, bool IsTopCodeLoc);
539-
540490
} // namespace _V1
541491
} // namespace sycl
542492

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// RUN: %clangxx -fsycl -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s -o %t.out | FileCheck %s
2+
// RUN: %clangxx -fsycl -fsycl-device-only -c -fno-color-diagnostics -Xclang -fdump-record-layouts %s -o %t.out | FileCheck %s
3+
// REQUIRES: linux
4+
// UNSUPPORTED: libcxx
5+
6+
// clang-format off
7+
8+
#include <sycl/detail/nd_range_view.hpp>
9+
10+
11+
SYCL_EXTERNAL void nd_range_view(sycl::detail::nd_range_view_v1::nd_range_view) {}
12+
// CHECK: 0 | class sycl::detail::nd_range_view
13+
// CHECK-NEXT: 0 | const size_t * MGlobalSize
14+
// CHECK-NEXT: 8 | const size_t * MLocalSize
15+
// CHECK-NEXT: 16 | const size_t * MOffset
16+
// CHECK-NEXT: 24 | size_t MDims
17+
// CHECK-NEXT: | [sizeof=32, dsize=32, align=8,
18+
// CHECK-NEXT: | nvsize=32, nvalign=8]

sycl/test/abi/sycl_symbols_linux.dump

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2985,12 +2985,8 @@ _ZN4sycl3_V121__isgreaterequal_implEdd
29852985
_ZN4sycl3_V121__isgreaterequal_implEff
29862986
_ZN4sycl3_V122accelerator_selector_vERKNS0_6deviceE
29872987
_ZN4sycl3_V128verifyUSMAllocatorPropertiesERKNS0_13property_listE
2988-
_ZN4sycl3_V136submit_kernel_direct_with_event_implILi1EEENS0_5eventERKNS0_5queueERKNS0_8nd_rangeIXT_EEERNS0_6detail17HostKernelRefBaseEPNSA_16DeviceKernelInfoENS0_4spanIKS2_Lm18446744073709551615EEERKNSA_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSK_5intel12experimental12cache_configENSM_17use_root_sync_keyENSM_23work_group_progress_keyENSM_22sub_group_progress_keyENSM_22work_item_progress_keyENSM_4cuda12cluster_sizeILi1EEENSW_ILi2EEENSW_ILi3EEEEEERKNSA_13code_locationEb
2989-
_ZN4sycl3_V136submit_kernel_direct_with_event_implILi2EEENS0_5eventERKNS0_5queueERKNS0_8nd_rangeIXT_EEERNS0_6detail17HostKernelRefBaseEPNSA_16DeviceKernelInfoENS0_4spanIKS2_Lm18446744073709551615EEERKNSA_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSK_5intel12experimental12cache_configENSM_17use_root_sync_keyENSM_23work_group_progress_keyENSM_22sub_group_progress_keyENSM_22work_item_progress_keyENSM_4cuda12cluster_sizeILi1EEENSW_ILi2EEENSW_ILi3EEEEEERKNSA_13code_locationEb
2990-
_ZN4sycl3_V136submit_kernel_direct_with_event_implILi3EEENS0_5eventERKNS0_5queueERKNS0_8nd_rangeIXT_EEERNS0_6detail17HostKernelRefBaseEPNSA_16DeviceKernelInfoENS0_4spanIKS2_Lm18446744073709551615EEERKNSA_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSK_5intel12experimental12cache_configENSM_17use_root_sync_keyENSM_23work_group_progress_keyENSM_22sub_group_progress_keyENSM_22work_item_progress_keyENSM_4cuda12cluster_sizeILi1EEENSW_ILi2EEENSW_ILi3EEEEEERKNSA_13code_locationEb
2991-
_ZN4sycl3_V139submit_kernel_direct_without_event_implILi1EEEvRKNS0_5queueERKNS0_8nd_rangeIXT_EEERNS0_6detail17HostKernelRefBaseEPNS9_16DeviceKernelInfoENS0_4spanIKNS0_5eventELm18446744073709551615EEERKNS9_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSK_5intel12experimental12cache_configENSM_17use_root_sync_keyENSM_23work_group_progress_keyENSM_22sub_group_progress_keyENSM_22work_item_progress_keyENSM_4cuda12cluster_sizeILi1EEENSW_ILi2EEENSW_ILi3EEEEEERKNS9_13code_locationEb
2992-
_ZN4sycl3_V139submit_kernel_direct_without_event_implILi2EEEvRKNS0_5queueERKNS0_8nd_rangeIXT_EEERNS0_6detail17HostKernelRefBaseEPNS9_16DeviceKernelInfoENS0_4spanIKNS0_5eventELm18446744073709551615EEERKNS9_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSK_5intel12experimental12cache_configENSM_17use_root_sync_keyENSM_23work_group_progress_keyENSM_22sub_group_progress_keyENSM_22work_item_progress_keyENSM_4cuda12cluster_sizeILi1EEENSW_ILi2EEENSW_ILi3EEEEEERKNS9_13code_locationEb
2993-
_ZN4sycl3_V139submit_kernel_direct_without_event_implILi3EEEvRKNS0_5queueERKNS0_8nd_rangeIXT_EEERNS0_6detail17HostKernelRefBaseEPNS9_16DeviceKernelInfoENS0_4spanIKNS0_5eventELm18446744073709551615EEERKNS9_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSK_5intel12experimental12cache_configENSM_17use_root_sync_keyENSM_23work_group_progress_keyENSM_22sub_group_progress_keyENSM_22work_item_progress_keyENSM_4cuda12cluster_sizeILi1EEENSW_ILi2EEENSW_ILi3EEEEEERKNS9_13code_locationEb
2988+
_ZN4sycl3_V136submit_kernel_direct_with_event_implERKNS0_5queueERKNS0_6detail16nd_range_view_v113nd_range_viewERNS4_17HostKernelRefBaseEPNS4_16DeviceKernelInfoENS0_4spanIKNS0_5eventELm18446744073709551615EEERKNS4_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSJ_5intel12experimental12cache_configENSL_17use_root_sync_keyENSL_23work_group_progress_keyENSL_22sub_group_progress_keyENSL_22work_item_progress_keyENSL_4cuda12cluster_sizeILi1EEENSV_ILi2EEENSV_ILi3EEEEEERKNS4_13code_locationEb
2989+
_ZN4sycl3_V139submit_kernel_direct_without_event_implERKNS0_5queueERKNS0_6detail16nd_range_view_v113nd_range_viewERNS4_17HostKernelRefBaseEPNS4_16DeviceKernelInfoENS0_4spanIKNS0_5eventELm18446744073709551615EEERKNS4_27kernel_launch_properties_v111PropsHolderIJNS0_3ext6oneapi12experimental23work_group_scratch_sizeENSJ_5intel12experimental12cache_configENSL_17use_root_sync_keyENSL_23work_group_progress_keyENSL_22sub_group_progress_keyENSL_22work_item_progress_keyENSL_4cuda12cluster_sizeILi1EEENSV_ILi2EEENSV_ILi3EEEEEERKNS4_13code_locationEb
29942990
_ZN4sycl3_V13ext5intel12experimental9pipe_base13get_pipe_nameB5cxx11EPKv
29952991
_ZN4sycl3_V13ext5intel12experimental9pipe_base17wait_non_blockingERKNS0_5eventE
29962992
_ZN4sycl3_V13ext5intel12experimental9pipe_base18get_pipe_name_implEPKv

0 commit comments

Comments
 (0)