Skip to content

Commit dd60cb2

Browse files
committed
[SYCL][Graph] Implement ext_oneapi_weak_object for command_graph class
- Add owner_less and weak_object support for the command_graph class - Unit test which creates objects for all graph states and tests using them in a map
1 parent b8395de commit dd60cb2

File tree

4 files changed

+80
-28
lines changed

4 files changed

+80
-28
lines changed

sycl/include/sycl/ext/oneapi/experimental/graph.hpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include <sycl/context.hpp> // for context
1313
#include <sycl/detail/export.hpp> // for __SYCL_EXPORT
1414
#include <sycl/detail/kernel_desc.hpp> // for kernel_param_kind_t
15+
#include <sycl/detail/owner_less_base.hpp> // for OwnerLessBase
1516
#include <sycl/detail/property_helper.hpp> // for DataLessPropKind, PropWith...
1617
#ifdef __INTEL_PREVIEW_BREAKING_CHANGES
1718
#include <sycl/detail/string_view.hpp>
@@ -236,7 +237,8 @@ class __SYCL_EXPORT dynamic_command_group {
236237

237238
namespace detail {
238239
// Templateless modifiable command-graph base class.
239-
class __SYCL_EXPORT modifiable_command_graph {
240+
class __SYCL_EXPORT modifiable_command_graph
241+
: public sycl::detail::OwnerLessBase<modifiable_command_graph> {
240242
public:
241243
/// Constructor.
242244
/// @param SyclContext Context to use for graph.
@@ -398,7 +400,8 @@ inline
398400
}
399401

400402
// Templateless executable command-graph base class.
401-
class __SYCL_EXPORT executable_command_graph {
403+
class __SYCL_EXPORT executable_command_graph
404+
: public sycl::detail::OwnerLessBase<executable_command_graph> {
402405
public:
403406
/// An executable command-graph is not user constructable.
404407
executable_command_graph() = delete;

sycl/include/sycl/ext/oneapi/owner_less.hpp

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@
88

99
#pragma once
1010

11-
#include <sycl/access/access.hpp> // for access_mode
12-
#include <sycl/accessor.hpp> // for host_acce...
13-
#include <sycl/accessor.hpp> // for accessor
14-
#include <sycl/context.hpp> // for context
15-
#include <sycl/device.hpp> // for device
16-
#include <sycl/event.hpp> // for event
17-
#include <sycl/ext/oneapi/weak_object.hpp> // for weak_object
18-
#include <sycl/kernel.hpp> // for kernel
19-
#include <sycl/kernel_bundle.hpp> // for kernel_id
20-
#include <sycl/kernel_bundle_enums.hpp> // for bundle_state
21-
#include <sycl/platform.hpp> // for platform
22-
#include <sycl/properties/image_properties.hpp> // for sampled_i...
23-
#include <sycl/queue.hpp> // for queue
24-
#include <sycl/stream.hpp> // for stream
11+
#include <sycl/access/access.hpp> // for access_mode
12+
#include <sycl/accessor.hpp> // for host_acce...
13+
#include <sycl/accessor.hpp> // for accessor
14+
#include <sycl/context.hpp> // for context
15+
#include <sycl/device.hpp> // for device
16+
#include <sycl/event.hpp> // for event
17+
#include <sycl/ext/oneapi/experimental/graph.hpp> // for command_graph
18+
#include <sycl/ext/oneapi/weak_object.hpp> // for weak_object
19+
#include <sycl/kernel.hpp> // for kernel
20+
#include <sycl/kernel_bundle.hpp> // for kernel_id
21+
#include <sycl/kernel_bundle_enums.hpp> // for bundle_state
22+
#include <sycl/platform.hpp> // for platform
23+
#include <sycl/properties/image_properties.hpp> // for sampled_i...
24+
#include <sycl/queue.hpp> // for queue
25+
#include <sycl/stream.hpp> // for stream
2526

2627
namespace sycl {
2728
inline namespace _V1 {
@@ -126,6 +127,10 @@ struct owner_less<host_sampled_image_accessor<DataT, Dimensions>>
126127
: public detail::owner_less_base<
127128
host_sampled_image_accessor<DataT, Dimensions>> {};
128129

130+
template <experimental::graph_state State>
131+
struct owner_less<experimental::command_graph<State>>
132+
: public detail::owner_less_base<experimental::command_graph<State>> {};
133+
129134
} // namespace ext::oneapi
130135
} // namespace _V1
131136
} // namespace sycl

sycl/test/abi/sycl_symbols_windows.dump

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -280,9 +280,9 @@
280280
??0SampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
281281
??0SampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@AEBV0123@@Z
282282
??0SampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@V?$range@$02@23@PEAXHHV?$id@$02@23@W4image_channel_type@23@W4image_channel_order@23@Uimage_sampler@23@AEBVproperty_list@23@@Z
283-
??0SubmissionInfo@detail@_V1@sycl@@QEAA@XZ
284-
??0SubmissionInfo@detail@_V1@sycl@@QEAA@AEBV0123@@Z
285283
??0SubmissionInfo@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
284+
??0SubmissionInfo@detail@_V1@sycl@@QEAA@AEBV0123@@Z
285+
??0SubmissionInfo@detail@_V1@sycl@@QEAA@XZ
286286
??0UnsampledImageAccessorBaseHost@detail@_V1@sycl@@IEAA@AEBV?$shared_ptr@VUnsampledImageAccessorImplHost@detail@_V1@sycl@@@std@@@Z
287287
??0UnsampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@$$QEAV0123@@Z
288288
??0UnsampledImageAccessorBaseHost@detail@_V1@sycl@@QEAA@AEBV0123@@Z
@@ -328,18 +328,12 @@
328328
??0device_image_plain@detail@_V1@sycl@@QEAA@AEBV?$shared_ptr@Vdevice_image_impl@detail@_V1@sycl@@@std@@@Z
329329
??0device_selector@_V1@sycl@@QEAA@AEBV012@@Z
330330
??0device_selector@_V1@sycl@@QEAA@XZ
331+
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV012345@@Z
332+
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV012345@@Z
333+
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV?$command_graph@$0A@@12345@AEBV?$vector@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@V?$allocator@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@@2@@std@@@Z
331334
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV0123456@@Z
332335
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV0123456@@Z
333336
??0dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@V?$command_graph@$0A@@23456@_KPEBX@Z
334-
?get_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEBA_KXZ
335-
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@$$QEAV012345@@Z
336-
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@AEAVdynamic_command_group@34567@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
337-
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV?$command_graph@$0A@@12345@AEBV?$vector@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@V?$allocator@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@@2@@std@@@Z
338-
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@$$QEAV012345@@Z
339-
??0dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@AEBV012345@@Z
340-
?set_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAX_K@Z
341-
??1dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
342-
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@AEBV012345@@Z
343337
??0event@_V1@sycl@@AEAA@V?$shared_ptr@Vevent_impl@detail@_V1@sycl@@@std@@@Z
344338
??0event@_V1@sycl@@QEAA@$$QEAV012@@Z
345339
??0event@_V1@sycl@@QEAA@AEBV012@@Z
@@ -477,6 +471,7 @@
477471
??1device@_V1@sycl@@QEAA@XZ
478472
??1device_image_plain@detail@_V1@sycl@@QEAA@XZ
479473
??1device_selector@_V1@sycl@@UEAA@XZ
474+
??1dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
480475
??1dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAA@XZ
481476
??1event@_V1@sycl@@QEAA@XZ
482477
??1exception@_V1@sycl@@UEAA@XZ
@@ -507,10 +502,14 @@
507502
??4?$OwnerLessBase@Vdevice@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
508503
??4?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
509504
??4?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
505+
??4?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
506+
??4?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
510507
??4?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
511508
??4?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
512509
??4?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
513510
??4?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
511+
??4?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
512+
??4?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
514513
??4?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
515514
??4?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
516515
??4?$OwnerLessBase@Vplatform@_V1@sycl@@@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
@@ -550,6 +549,8 @@
550549
??4device_image_plain@detail@_V1@sycl@@QEAAAEAV0123@$$QEAV0123@@Z
551550
??4device_image_plain@detail@_V1@sycl@@QEAAAEAV0123@AEBV0123@@Z
552551
??4device_selector@_V1@sycl@@QEAAAEAV012@AEBV012@@Z
552+
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@$$QEAV012345@@Z
553+
??4dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV012345@AEBV012345@@Z
553554
??4dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV0123456@$$QEAV0123456@@Z
554555
??4dynamic_parameter_base@detail@experimental@oneapi@ext@_V1@sycl@@QEAAAEAV0123456@AEBV0123456@@Z
555556
??4event@_V1@sycl@@QEAAAEAV012@$$QEAV012@@Z
@@ -646,8 +647,8 @@
646647
?GDBMethodsAnchor@UnsampledImageAccessorBaseHost@detail@_V1@sycl@@IEAAXXZ
647648
?GetRangeRoundingSettings@handler@_V1@sycl@@AEAAXAEA_K00@Z
648649
?HasAssociatedAccessor@handler@_V1@sycl@@AEBA_NPEAVAccessorImplHost@detail@23@W4target@access@23@@Z
649-
?PostProcessorFunc@SubmissionInfo@detail@_V1@sycl@@QEBAAEBV?$optional@V?$function@$$A6AX_N0AEAVevent@_V1@sycl@@@Z@std@@@234@XZ
650650
?PostProcessorFunc@SubmissionInfo@detail@_V1@sycl@@QEAAAEAV?$optional@V?$function@$$A6AX_N0AEAVevent@_V1@sycl@@@Z@std@@@234@XZ
651+
?PostProcessorFunc@SubmissionInfo@detail@_V1@sycl@@QEBAAEBV?$optional@V?$function@$$A6AX_N0AEAVevent@_V1@sycl@@@Z@std@@@234@XZ
651652
?PushBack@exception_list@_V1@sycl@@AEAAX$$QEAVexception_ptr@std@@@Z
652653
?PushBack@exception_list@_V1@sycl@@AEAAXAEBVexception_ptr@std@@@Z
653654
?RangeRoundingTrace@handler@_V1@sycl@@AEAA_NXZ
@@ -3699,6 +3700,7 @@
36993700
?addHostAccessorAndWait@detail@_V1@sycl@@YAXPEAVAccessorImplHost@123@@Z
37003701
?addHostSampledImageAccessorAndWait@detail@_V1@sycl@@YAXPEAVSampledImageAccessorImplHost@123@@Z
37013702
?addHostUnsampledImageAccessorAndWait@detail@_V1@sycl@@YAXPEAVUnsampledImageAccessorImplHost@123@@Z
3703+
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@AEAVdynamic_command_group@34567@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
37023704
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
37033705
?addImpl@modifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@IEAA?AVnode@34567@V?$function@$$A6AXAEAVhandler@_V1@sycl@@@Z@std@@AEBV?$vector@Vnode@experimental@oneapi@ext@_V1@sycl@@V?$allocator@Vnode@experimental@oneapi@ext@_V1@sycl@@@std@@@std@@@Z
37043706
?addLifetimeSharedPtrStorage@handler@_V1@sycl@@AEAAXV?$shared_ptr@$$CBX@std@@@Z
@@ -3854,10 +3856,14 @@
38543856
?ext_oneapi_owner_before@?$OwnerLessBase@Vdevice@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVdevice@34@@Z
38553857
?ext_oneapi_owner_before@?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vevent@_V1@sycl@@@2oneapi@ext@34@@Z
38563858
?ext_oneapi_owner_before@?$OwnerLessBase@Vevent@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVevent@34@@Z
3859+
?ext_oneapi_owner_before@?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@2oneapi@ext@34@@Z
3860+
?ext_oneapi_owner_before@?$OwnerLessBase@Vexecutable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVexecutable_command_graph@2experimental@oneapi@ext@34@@Z
38573861
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vkernel@_V1@sycl@@@2oneapi@ext@34@@Z
38583862
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVkernel@34@@Z
38593863
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vkernel_id@_V1@sycl@@@2oneapi@ext@34@@Z
38603864
?ext_oneapi_owner_before@?$OwnerLessBase@Vkernel_id@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVkernel_id@34@@Z
3865+
?ext_oneapi_owner_before@?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@2oneapi@ext@34@@Z
3866+
?ext_oneapi_owner_before@?$OwnerLessBase@Vmodifiable_command_graph@detail@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVmodifiable_command_graph@2experimental@oneapi@ext@34@@Z
38613867
?ext_oneapi_owner_before@?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@2oneapi@ext@34@@Z
38623868
?ext_oneapi_owner_before@?$OwnerLessBase@Vphysical_mem@experimental@oneapi@ext@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBVphysical_mem@experimental@oneapi@ext@34@@Z
38633869
?ext_oneapi_owner_before@?$OwnerLessBase@Vplatform@_V1@sycl@@@detail@_V1@sycl@@QEBA_NAEBV?$weak_object_base@Vplatform@_V1@sycl@@@2oneapi@ext@34@@Z
@@ -4000,6 +4006,7 @@
40004006
?getType@handler@_V1@sycl@@AEBA?AW4CGType@detail@23@XZ
40014007
?getValueFromDynamicParameter@detail@_V1@sycl@@YAPEAXAEAVdynamic_parameter_base@1experimental@oneapi@ext@23@@Z
40024008
?get_access_mode@experimental@oneapi@ext@_V1@sycl@@YA?AW4address_access_mode@12345@PEBX_KAEBVcontext@45@@Z
4009+
?get_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEBA_KXZ
40034010
?get_addressing_mode@sampler@_V1@sycl@@QEBA?AW4addressing_mode@23@XZ
40044011
?get_allocator_internal@buffer_plain@detail@_V1@sycl@@IEBAAEBV?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@XZ
40054012
?get_allocator_internal@image_plain@detail@_V1@sycl@@IEBAAEBV?$unique_ptr@VSYCLMemObjAllocator@detail@_V1@sycl@@U?$default_delete@VSYCLMemObjAllocator@detail@_V1@sycl@@@std@@@std@@XZ
@@ -4259,6 +4266,7 @@
42594266
?setType@handler@_V1@sycl@@AEAAXW4CGType@detail@23@@Z
42604267
?setUserFacingNodeType@handler@_V1@sycl@@AEAAXW4node_type@experimental@oneapi@ext@23@@Z
42614268
?set_access_mode@experimental@oneapi@ext@_V1@sycl@@YAXPEBX_KW4address_access_mode@12345@AEBVcontext@45@@Z
4269+
?set_active_cgf@dynamic_command_group@experimental@oneapi@ext@_V1@sycl@@QEAAX_K@Z
42624270
?set_arg@handler@_V1@sycl@@QEAAXH$$QEAVraw_kernel_arg@experimental@oneapi@ext@23@@Z
42634271
?set_final_data_internal@buffer_plain@detail@_V1@sycl@@IEAAXAEBV?$function@$$A6AXAEBV?$function@$$A6AXPEAX@Z@std@@@Z@std@@@Z
42644272
?set_final_data_internal@buffer_plain@detail@_V1@sycl@@IEAAXXZ

sycl/unittests/Extensions/CommandGraph/CommandGraph.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,45 @@
77
//===----------------------------------------------------------------------===//
88
#include "Common.hpp"
99

10+
#include <map>
11+
1012
using namespace sycl;
1113
using namespace sycl::ext::oneapi;
1214

15+
// Test creating and using ext::oneapi::weak_object and owner_less for
16+
// command_graph class in a map
17+
TEST_F(CommandGraphTest, OwnerLessGraph) {
18+
19+
using ModifiableGraphT =
20+
experimental::command_graph<experimental::graph_state::modifiable>;
21+
using ExecutableGraphT =
22+
experimental::command_graph<experimental::graph_state::executable>;
23+
24+
// Test graph objects using the default template parameter
25+
weak_object<experimental::command_graph<>> DefaultWeakGraph = Graph;
26+
std::map<weak_object<experimental::command_graph<>>, int,
27+
owner_less<experimental::command_graph<>>>
28+
DefaultGraphMap;
29+
30+
ASSERT_NO_THROW(DefaultGraphMap.insert({DefaultWeakGraph, 1}));
31+
32+
// Test graph objects in the modifiable state
33+
weak_object<ModifiableGraphT> WeakGraph = Graph;
34+
std::map<weak_object<ModifiableGraphT>, int, owner_less<ModifiableGraphT>>
35+
ModifiableGraphMap;
36+
37+
ASSERT_NO_THROW(ModifiableGraphMap.insert({WeakGraph, 1}));
38+
39+
// Test graph objects in the executable state
40+
auto ExecGraph = Graph.finalize();
41+
42+
weak_object<ExecutableGraphT> WeakGraphExec = ExecGraph;
43+
std::map<weak_object<ExecutableGraphT>, int, owner_less<ExecutableGraphT>>
44+
ExecGraphMap;
45+
46+
ASSERT_NO_THROW(ExecGraphMap.insert({WeakGraphExec, 1}));
47+
}
48+
1349
TEST_F(CommandGraphTest, AddNode) {
1450
auto GraphImpl = sycl::detail::getSyclObjImpl(Graph);
1551

0 commit comments

Comments
 (0)