diff --git a/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td b/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td index 72bc18e1a1385..8b805ff3fe1fb 100644 --- a/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td +++ b/llvm/include/llvm/SYCLLowerIR/DeviceConfigFile.td @@ -69,6 +69,7 @@ def AspectExt_oneapi_tangle_group : Aspect<"ext_oneapi_tangle_group">; def AspectExt_intel_matrix : Aspect<"ext_intel_matrix">; def AspectExt_oneapi_is_composite : Aspect<"ext_oneapi_is_composite">; def AspectExt_oneapi_is_component : Aspect<"ext_oneapi_is_component">; +def AspectExt_oneapi_graph : Aspect<"ext_oneapi_graph">; // Deprecated aspects def AspectInt64_base_atomics : Aspect<"int64_base_atomics">; def AspectInt64_extended_atomics : Aspect<"int64_extended_atomics">; @@ -119,7 +120,7 @@ def : TargetInfo<"__TestAspectList", AspectExt_oneapi_interop_semaphore_import, AspectExt_oneapi_interop_semaphore_export, AspectExt_oneapi_mipmap, AspectExt_oneapi_mipmap_anisotropy, AspectExt_oneapi_mipmap_level_reference, AspectExt_intel_esimd, AspectExt_oneapi_ballot_group, AspectExt_oneapi_fixed_size_group, AspectExt_oneapi_opportunistic_group, - AspectExt_oneapi_tangle_group, AspectExt_intel_matrix, AspectExt_oneapi_is_composite, AspectExt_oneapi_is_component], + AspectExt_oneapi_tangle_group, AspectExt_intel_matrix, AspectExt_oneapi_is_composite, AspectExt_oneapi_is_component, AspectExt_oneapi_graph], []>; // This definition serves the only purpose of testing whether the deprecated aspect list defined in here and in SYCL RT // match. diff --git a/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc b/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc index f2a4532b2c81c..637a8adc8c8f4 100644 --- a/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc +++ b/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc @@ -43,6 +43,7 @@ Dan Holmes, Intel + Greg Lueck, Intel + Steffen Larsen, Intel + Jaime Arteaga Molina, Intel + +Andrei Elovikov, Intel + Ewan Crawford, Codeplay + Ben Tracy, Codeplay + Duncan McBain, Codeplay + @@ -296,37 +297,18 @@ Adding an executable graph as a sub-graph does not affect its existing node dependencies, such that it could be submitted in future without any side effects of prior uses as a sub-graph. -=== Device Info Query - -[source, c++] ----- -namespace sycl::ext::oneapi::experimental { -enum class graph_support_level { - unsupported, - native, - emulated -}; -} ----- +=== Querying Device Support Due to the experimental nature of the extension, support is not available across -all devices. The following device support query is added to the -`sycl::ext::oneapi::experimental` namespace for reporting devices which are -are currently supported, and how that support is implemented. +all devices. -Table {counter: tableNumber}. Device Info Queries. +Table {counter: tableNumber}. Device Support Aspect. [%header] |=== -| Device Descriptors | Return Type | Description - -|`info::device::graph_support` -|`graph_support_level` -|When passed to `device::get_info<...>()`, the function returns `native` -if there is an underlying SYCL backend command-buffer construct which is used -to propagate the graph to the backend. If no backend construct exists, or -building on top of it has not yet been implemented, then `emulated` is -returned. Otherwise `unsupported` is returned if the SYCL device doesn't -support using this graph extension. +| Device Descriptor | Description + +|`aspect::ext_oneapi_graph` +| Indicates that the device supports the APIs described in this extension. |=== diff --git a/sycl/include/sycl/device_aspect_macros.hpp b/sycl/include/sycl/device_aspect_macros.hpp index 489163c556223..b9303862f3db0 100644 --- a/sycl/include/sycl/device_aspect_macros.hpp +++ b/sycl/include/sycl/device_aspect_macros.hpp @@ -313,6 +313,11 @@ #define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_is_component__ 0 #endif +#ifndef __SYCL_ALL_DEVICES_HAVE_ext_oneapi_graph__ +// __SYCL_ASPECT(ext_oneapi_graph, 61) +#define __SYCL_ALL_DEVICES_HAVE_ext_oneapi_graph__ 0 +#endif + #ifndef __SYCL_ANY_DEVICE_HAS_host__ // __SYCL_ASPECT(host, 0) #define __SYCL_ANY_DEVICE_HAS_host__ 0 @@ -617,3 +622,8 @@ // __SYCL_ASPECT(ext_oneapi_is_component, 60) #define __SYCL_ANY_DEVICE_HAS_ext_oneapi_is_component__ 0 #endif + +#ifndef __SYCL_ANY_DEVICE_HAS_ext_oneapi_graph__ +// __SYCL_ASPECT(ext_oneapi_graph, 61) +#define __SYCL_ANY_DEVICE_HAS_ext_oneapi_graph__ 0 +#endif diff --git a/sycl/include/sycl/info/aspects.def b/sycl/include/sycl/info/aspects.def index a4a2296609e56..841ed995851c4 100644 --- a/sycl/include/sycl/info/aspects.def +++ b/sycl/include/sycl/info/aspects.def @@ -55,3 +55,4 @@ __SYCL_ASPECT(ext_oneapi_tangle_group, 57) __SYCL_ASPECT(ext_intel_matrix, 58) __SYCL_ASPECT(ext_oneapi_is_composite, 59) __SYCL_ASPECT(ext_oneapi_is_component, 60) +__SYCL_ASPECT(ext_oneapi_graph, 61) diff --git a/sycl/include/sycl/info/ext_oneapi_device_traits.def b/sycl/include/sycl/info/ext_oneapi_device_traits.def index 1842d66760e85..3d04318449343 100644 --- a/sycl/include/sycl/info/ext_oneapi_device_traits.def +++ b/sycl/include/sycl/info/ext_oneapi_device_traits.def @@ -13,11 +13,6 @@ __SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device, matrix_combinations, std::vector, PI_EXT_ONEAPI_DEVICE_INFO_MATRIX_COMBINATIONS) -__SYCL_PARAM_TRAITS_SPEC( - ext::oneapi::experimental, device, graph_support, - ext::oneapi::experimental::graph_support_level, - 0 /* No PI device code needed */) - // Bindless images pitched allocation __SYCL_PARAM_TRAITS_SPEC(ext::oneapi::experimental, device, image_row_pitch_align, uint32_t, diff --git a/sycl/include/sycl/info/info_desc.hpp b/sycl/include/sycl/info/info_desc.hpp index 82cf18b5a30a6..5b79b642076c7 100644 --- a/sycl/include/sycl/info/info_desc.hpp +++ b/sycl/include/sycl/info/info_desc.hpp @@ -193,14 +193,9 @@ template struct compatibility_param_traits {}; } /*namespace info */ \ } /*namespace Namespace */ -namespace ext::oneapi::experimental { - -enum class graph_support_level { unsupported = 0, native = 1, emulated = 2 }; - -namespace info::device { +namespace ext::oneapi::experimental::info::device { template struct max_work_groups; -} // namespace info::device -} // namespace ext::oneapi::experimental +} // namespace ext::oneapi::experimental::info::device #include #include #include diff --git a/sycl/source/detail/device_impl.cpp b/sycl/source/detail/device_impl.cpp index a78daf5fe0f28..6bf833e3ab396 100644 --- a/sycl/source/detail/device_impl.cpp +++ b/sycl/source/detail/device_impl.cpp @@ -602,6 +602,31 @@ bool device_impl::has(aspect Aspect) const { return Result != nullptr; } + case aspect::ext_oneapi_graph: { + size_t ResultSize = 0; + bool CallSuccessful = getPlugin()->call_nocheck( + MDevice, PI_DEVICE_INFO_EXTENSIONS, 0, nullptr, + &ResultSize) == PI_SUCCESS; + if (!CallSuccessful || ResultSize == 0) { + return PI_FALSE; + } + + std::unique_ptr Result(new char[ResultSize]); + CallSuccessful = getPlugin()->call_nocheck( + MDevice, PI_DEVICE_INFO_EXTENSIONS, ResultSize, + Result.get(), nullptr) == PI_SUCCESS; + + if (!CallSuccessful) { + return PI_FALSE; + } + + std::string_view ExtensionsString(Result.get()); + std::cout << ExtensionsString; + const bool Support = + ExtensionsString.find("ur_exp_command_buffer") != std::string::npos; + + return Support; + } } throw runtime_error("This device aspect has not been implemented yet.", PI_ERROR_INVALID_DEVICE); diff --git a/sycl/source/detail/device_info.hpp b/sycl/source/detail/device_info.hpp index 55b2615d90d12..f0585260bdbe3 100644 --- a/sycl/source/detail/device_info.hpp +++ b/sycl/source/detail/device_info.hpp @@ -1171,34 +1171,6 @@ struct get_device_info_impl< } }; -// Specialization for graph extension support -template <> -struct get_device_info_impl< - ext::oneapi::experimental::graph_support_level, - ext::oneapi::experimental::info::device::graph_support> { - static ext::oneapi::experimental::graph_support_level - get(const DeviceImplPtr &Dev) { - size_t ResultSize = 0; - Dev->getPlugin()->call( - Dev->getHandleRef(), PI_DEVICE_INFO_EXTENSIONS, 0, nullptr, - &ResultSize); - if (ResultSize == 0) - return ext::oneapi::experimental::graph_support_level::unsupported; - - std::unique_ptr Result(new char[ResultSize]); - Dev->getPlugin()->call( - Dev->getHandleRef(), PI_DEVICE_INFO_EXTENSIONS, ResultSize, - Result.get(), nullptr); - - std::string_view ExtensionsString(Result.get()); - bool CmdBufferSupport = - ExtensionsString.find("ur_exp_command_buffer") != std::string::npos; - return CmdBufferSupport - ? ext::oneapi::experimental::graph_support_level::native - : ext::oneapi::experimental::graph_support_level::unsupported; - } -}; - // Specialization for composite devices extension. template <> struct get_device_info_impl< @@ -2161,13 +2133,6 @@ inline uint32_t get_device_info_host< PI_ERROR_INVALID_DEVICE); } -template <> -inline ext::oneapi::experimental::graph_support_level -get_device_info_host() { - // No support for graphs on the host device. - return ext::oneapi::experimental::graph_support_level::unsupported; -} - template <> inline uint32_t get_device_info_host< ext::oneapi::experimental::info::device::image_row_pitch_align>() { diff --git a/sycl/source/detail/graph_impl.cpp b/sycl/source/detail/graph_impl.cpp index 5b0bc3b8324e9..f38f8a518a058 100644 --- a/sycl/source/detail/graph_impl.cpp +++ b/sycl/source/detail/graph_impl.cpp @@ -16,10 +16,6 @@ #include #include -// Developer switch to use emulation mode on all backends, even those that -// report native support, this is useful for debugging. -#define FORCE_EMULATION_MODE 0 - namespace sycl { inline namespace _V1 { @@ -1288,21 +1284,9 @@ void executable_command_graph::finalizeImpl() { impl->makePartitions(); auto Device = impl->getGraphImpl()->getDevice(); - bool CmdBufSupport = - Device - .get_info() == - graph_support_level::native; - -#if FORCE_EMULATION_MODE - // Above query should still succeed in emulation mode, but ignore the - // result and use emulation. - CmdBufSupport = false; -#endif - if (CmdBufSupport) { - for (auto Partition : impl->getPartitions()) { - if (!Partition->isHostTask()) { - impl->createCommandBuffers(Device, Partition); - } + for (auto Partition : impl->getPartitions()) { + if (!Partition->isHostTask()) { + impl->createCommandBuffers(Device, Partition); } } } diff --git a/sycl/source/detail/graph_impl.hpp b/sycl/source/detail/graph_impl.hpp index 6793ab0b2229f..9da782c2fcd21 100644 --- a/sycl/source/detail/graph_impl.hpp +++ b/sycl/source/detail/graph_impl.hpp @@ -586,9 +586,7 @@ class graph_impl { MAllowBuffers = true; } - if (SyclDevice.get_info< - ext::oneapi::experimental::info::device::graph_support>() == - graph_support_level::unsupported) { + if (!SyclDevice.has(aspect::ext_oneapi_graph)) { std::stringstream Stream; Stream << SyclDevice.get_backend(); std::string BackendString = Stream.str(); diff --git a/sycl/test-e2e/Graph/graph_exception_global_device_extension.cpp b/sycl/test-e2e/Graph/Error/graph_exception_global_device_extension.cpp similarity index 98% rename from sycl/test-e2e/Graph/graph_exception_global_device_extension.cpp rename to sycl/test-e2e/Graph/Error/graph_exception_global_device_extension.cpp index ae5a07a7395aa..929b782dea9ef 100644 --- a/sycl/test-e2e/Graph/graph_exception_global_device_extension.cpp +++ b/sycl/test-e2e/Graph/Error/graph_exception_global_device_extension.cpp @@ -5,7 +5,7 @@ // when trying to use sycl_ext_oneapi_device_global // along with Graph. -#include "graph_common.hpp" +#include "../graph_common.hpp" using TestProperties = decltype(sycl::ext::oneapi::experimental::properties{}); @@ -143,10 +143,6 @@ template void test(queue Queue) { int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - test(Queue); test(Queue); test(Queue); diff --git a/sycl/test-e2e/Graph/invalid_depends_on.cpp b/sycl/test-e2e/Graph/Error/invalid_depends_on.cpp similarity index 96% rename from sycl/test-e2e/Graph/invalid_depends_on.cpp rename to sycl/test-e2e/Graph/Error/invalid_depends_on.cpp index 04e2d331e438e..7a930df254fba 100644 --- a/sycl/test-e2e/Graph/invalid_depends_on.cpp +++ b/sycl/test-e2e/Graph/Error/invalid_depends_on.cpp @@ -4,15 +4,11 @@ // Tests that calling handler::depends_on() for events not part of the graph // throws. -#include "graph_common.hpp" +#include "../graph_common.hpp" int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - ext::oneapi::experimental::command_graph Graph{Queue.get_context(), Queue.get_device()}; ext::oneapi::experimental::command_graph Graph2{Queue.get_context(), diff --git a/sycl/test-e2e/Graph/invalid_event_wait.cpp b/sycl/test-e2e/Graph/Error/invalid_event_wait.cpp similarity index 89% rename from sycl/test-e2e/Graph/invalid_event_wait.cpp rename to sycl/test-e2e/Graph/Error/invalid_event_wait.cpp index da48cb65575ad..7f02818b843e9 100644 --- a/sycl/test-e2e/Graph/invalid_event_wait.cpp +++ b/sycl/test-e2e/Graph/Error/invalid_event_wait.cpp @@ -4,15 +4,11 @@ // Tests that waiting on an event returned from a Record and Replay submission // throws. -#include "graph_common.hpp" +#include "../graph_common.hpp" int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - ext::oneapi::experimental::command_graph Graph{Queue.get_context(), Queue.get_device()}; Graph.begin_recording(Queue); diff --git a/sycl/test-e2e/Graph/invalid_queue_wait.cpp b/sycl/test-e2e/Graph/Error/invalid_queue_wait.cpp similarity index 86% rename from sycl/test-e2e/Graph/invalid_queue_wait.cpp rename to sycl/test-e2e/Graph/Error/invalid_queue_wait.cpp index 64295706c1a53..ed8057f78bac6 100644 --- a/sycl/test-e2e/Graph/invalid_queue_wait.cpp +++ b/sycl/test-e2e/Graph/Error/invalid_queue_wait.cpp @@ -3,15 +3,11 @@ // Tests that waiting on a Queue in recording mode throws. -#include "graph_common.hpp" +#include "../graph_common.hpp" int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - ext::oneapi::experimental::command_graph Graph{Queue.get_context(), Queue.get_device()}; Graph.begin_recording(Queue); diff --git a/sycl/test-e2e/Graph/Error/lit.local.cfg b/sycl/test-e2e/Graph/Error/lit.local.cfg new file mode 100644 index 0000000000000..9c0c4cc846295 --- /dev/null +++ b/sycl/test-e2e/Graph/Error/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/Explicit/add_node_while_recording.cpp b/sycl/test-e2e/Graph/Explicit/add_node_while_recording.cpp index b09c3ff221066..4a5d05b157853 100644 --- a/sycl/test-e2e/Graph/Explicit/add_node_while_recording.cpp +++ b/sycl/test-e2e/Graph/Explicit/add_node_while_recording.cpp @@ -14,10 +14,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - bool Success = false; exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/Explicit/basic_usm_host.cpp b/sycl/test-e2e/Graph/Explicit/basic_usm_host.cpp index 6256a43eb1f36..2d5a39a0cf868 100644 --- a/sycl/test-e2e/Graph/Explicit/basic_usm_host.cpp +++ b/sycl/test-e2e/Graph/Explicit/basic_usm_host.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_host_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/basic_usm_mixed.cpp b/sycl/test-e2e/Graph/Explicit/basic_usm_mixed.cpp index a7900dae9dd39..1f6c28f1e8105 100644 --- a/sycl/test-e2e/Graph/Explicit/basic_usm_mixed.cpp +++ b/sycl/test-e2e/Graph/Explicit/basic_usm_mixed.cpp @@ -4,7 +4,9 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_host_allocations +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/basic_usm_shared.cpp b/sycl/test-e2e/Graph/Explicit/basic_usm_shared.cpp index e34ffdc6708c3..2f69d763a30a3 100644 --- a/sycl/test-e2e/Graph/Explicit/basic_usm_shared.cpp +++ b/sycl/test-e2e/Graph/Explicit/basic_usm_shared.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/basic_usm_system.cpp b/sycl/test-e2e/Graph/Explicit/basic_usm_system.cpp index 91c497a6c98c6..bd41e8e36854d 100644 --- a/sycl/test-e2e/Graph/Explicit/basic_usm_system.cpp +++ b/sycl/test-e2e/Graph/Explicit/basic_usm_system.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_system_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/cycle_error.cpp b/sycl/test-e2e/Graph/Explicit/cycle_error.cpp index 19117bcf7a1bd..52eebc9205851 100644 --- a/sycl/test-e2e/Graph/Explicit/cycle_error.cpp +++ b/sycl/test-e2e/Graph/Explicit/cycle_error.cpp @@ -16,10 +16,6 @@ void CreateGraphWithCyclesTest(bool DisableCycleChecks) { queue Queue; - if (!are_graphs_supported(Queue)) { - return; - } - property_list Props; if (DisableCycleChecks) { @@ -80,14 +76,6 @@ void CreateGraphWithCyclesTest(bool DisableCycleChecks) { } int main() { - { - queue Queue; - - if (!are_graphs_supported(Queue)) { - return 0; - } - } - // Test with cycle checks CreateGraphWithCyclesTest(false); // Test without cycle checks diff --git a/sycl/test-e2e/Graph/Explicit/depends_on.cpp b/sycl/test-e2e/Graph/Explicit/depends_on.cpp index 5919bbbcf203b..635c10c25e7af 100644 --- a/sycl/test-e2e/Graph/Explicit/depends_on.cpp +++ b/sycl/test-e2e/Graph/Explicit/depends_on.cpp @@ -15,10 +15,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Explicit/enqueue_ordering.cpp b/sycl/test-e2e/Graph/Explicit/enqueue_ordering.cpp index da3ccd2329ec9..3c444893ea685 100644 --- a/sycl/test-e2e/Graph/Explicit/enqueue_ordering.cpp +++ b/sycl/test-e2e/Graph/Explicit/enqueue_ordering.cpp @@ -15,10 +15,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Explicit/executable_graph_update_ordering.cpp b/sycl/test-e2e/Graph/Explicit/executable_graph_update_ordering.cpp index 5cfcd104fd29c..c6ca7cd801ac8 100644 --- a/sycl/test-e2e/Graph/Explicit/executable_graph_update_ordering.cpp +++ b/sycl/test-e2e/Graph/Explicit/executable_graph_update_ordering.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations // Skip as executable graph update and host tasks both aren't // implemented. diff --git a/sycl/test-e2e/Graph/Explicit/host_task.cpp b/sycl/test-e2e/Graph/Explicit/host_task.cpp index d520338b579cb..3402af75d6dba 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/host_task2.cpp b/sycl/test-e2e/Graph/Explicit/host_task2.cpp index 06708fd1c75ec..b9b333cfae863 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task2.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task2.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/host_task2_multiple_roots.cpp b/sycl/test-e2e/Graph/Explicit/host_task2_multiple_roots.cpp index ce2d805de5664..c9d7e69f5ef4e 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task2_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task2_multiple_roots.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/host_task_last.cpp b/sycl/test-e2e/Graph/Explicit/host_task_last.cpp index 6bb9e464ac0b1..6ef04c16fa9a1 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task_last.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task_last.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/host_task_multiple_deps.cpp b/sycl/test-e2e/Graph/Explicit/host_task_multiple_deps.cpp index 898c6867c387b..efcefbcbd31ac 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task_multiple_deps.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task_multiple_deps.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/host_task_multiple_roots.cpp b/sycl/test-e2e/Graph/Explicit/host_task_multiple_roots.cpp index 4750c5ff69201..eb8b683f2fc93 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task_multiple_roots.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/host_task_successive.cpp b/sycl/test-e2e/Graph/Explicit/host_task_successive.cpp index aad8dfee2fefc..6dc88d1f33669 100644 --- a/sycl/test-e2e/Graph/Explicit/host_task_successive.cpp +++ b/sycl/test-e2e/Graph/Explicit/host_task_successive.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/lit.local.cfg b/sycl/test-e2e/Graph/Explicit/lit.local.cfg new file mode 100644 index 0000000000000..9c0c4cc846295 --- /dev/null +++ b/sycl/test-e2e/Graph/Explicit/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/Explicit/memadvise.cpp b/sycl/test-e2e/Graph/Explicit/memadvise.cpp index 11e0d6296290f..450a2552bc9f8 100644 --- a/sycl/test-e2e/Graph/Explicit/memadvise.cpp +++ b/sycl/test-e2e/Graph/Explicit/memadvise.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %if linux && (level_zero || cuda) %{ env SYCL_PI_TRACE=2 %{run} %t.out 2>&1 FileCheck %s %} %else %{ %{run} %t.out %} +// REQUIRES: aspect-usm_shared_allocations + // Mem advise command not supported for OpenCL // UNSUPPORTED: opencl diff --git a/sycl/test-e2e/Graph/Explicit/node_ordering.cpp b/sycl/test-e2e/Graph/Explicit/node_ordering.cpp index 5601c06206dd7..9c5d0dcba9044 100644 --- a/sycl/test-e2e/Graph/Explicit/node_ordering.cpp +++ b/sycl/test-e2e/Graph/Explicit/node_ordering.cpp @@ -14,10 +14,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Explicit/prefetch.cpp b/sycl/test-e2e/Graph/Explicit/prefetch.cpp index 8e0e6e15c292d..8f585464987a4 100644 --- a/sycl/test-e2e/Graph/Explicit/prefetch.cpp +++ b/sycl/test-e2e/Graph/Explicit/prefetch.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %if linux && (level_zero || cuda) %{ env SYCL_PI_TRACE=2 %{run} %t.out 2>&1 FileCheck %s %} %else %{ %{run} %t.out %} +// REQUIRES: aspect-usm_shared_allocations + // prefetch command not supported for OpenCL // UNSUPPORTED: opencl diff --git a/sycl/test-e2e/Graph/Explicit/single_node.cpp b/sycl/test-e2e/Graph/Explicit/single_node.cpp index 21604c66d3f95..1fd040ce161a4 100644 --- a/sycl/test-e2e/Graph/Explicit/single_node.cpp +++ b/sycl/test-e2e/Graph/Explicit/single_node.cpp @@ -13,10 +13,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Explicit/usm_fill_host.cpp b/sycl/test-e2e/Graph/Explicit/usm_fill_host.cpp index f31e641ec30cf..7acd5143f6f54 100644 --- a/sycl/test-e2e/Graph/Explicit/usm_fill_host.cpp +++ b/sycl/test-e2e/Graph/Explicit/usm_fill_host.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_host_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Explicit/usm_fill_shared.cpp b/sycl/test-e2e/Graph/Explicit/usm_fill_shared.cpp index 3b8821f6b3b33..8b8c623f48107 100644 --- a/sycl/test-e2e/Graph/Explicit/usm_fill_shared.cpp +++ b/sycl/test-e2e/Graph/Explicit/usm_fill_shared.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_EXPLICIT diff --git a/sycl/test-e2e/Graph/Inputs/add_nodes_after_finalize.cpp b/sycl/test-e2e/Graph/Inputs/add_nodes_after_finalize.cpp index ec54bb11c64ca..4331b46727691 100644 --- a/sycl/test-e2e/Graph/Inputs/add_nodes_after_finalize.cpp +++ b/sycl/test-e2e/Graph/Inputs/add_nodes_after_finalize.cpp @@ -7,10 +7,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = unsigned int; std::vector DataA(Size), DataB(Size), DataC(Size), DataOut(Size); diff --git a/sycl/test-e2e/Graph/Inputs/assume_buffer_outlives_graph_property.cpp b/sycl/test-e2e/Graph/Inputs/assume_buffer_outlives_graph_property.cpp index 4024b3bd6b49d..415767c7888d9 100644 --- a/sycl/test-e2e/Graph/Inputs/assume_buffer_outlives_graph_property.cpp +++ b/sycl/test-e2e/Graph/Inputs/assume_buffer_outlives_graph_property.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = unsigned short; buffer Buffer{range<1>{1}}; diff --git a/sycl/test-e2e/Graph/Inputs/basic_buffer.cpp b/sycl/test-e2e/Graph/Inputs/basic_buffer.cpp index cc7134d93e9a5..697072580789c 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_buffer.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_buffer.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = unsigned short; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm.cpp index f7a7ef9e1ae65..2231498276708 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp index 8af8442e18505..a7eb0aa3158c0 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp @@ -6,14 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().has(sycl::aspect::usm_host_allocations)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp index 3a9352834a2fd..90b85c986db2b 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp @@ -6,17 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - if (!Queue.get_device().has(sycl::aspect::usm_host_allocations)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp index 710a755e08e5c..ca3dba3813f25 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp @@ -6,14 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp index d2c7843960b49..a0e48d29fc3fe 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp @@ -6,14 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().has(sycl::aspect::usm_system_allocations)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy.cpp index 7d9c1b1dd839c..39d5459b9759d 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; const T ModValue = 7; diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_2d.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_2d.cpp index 2262214267274..99f7b2ec1199c 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_2d.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_2d.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; const T ModValue = 7; diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target.cpp index c5e0ee79e59af..b5e912494a28b 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_2d.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_2d.cpp index d42dba77daa31..ce91e7fb0eaef 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_2d.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_2d.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size * Size), DataB(Size * Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_offset.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_offset.cpp index 0c8ccf73d3281..273ff371ca58e 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_offset.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_host2target_offset.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size + Offset), DataB(Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_offsets.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_offsets.cpp index 08c15015c5d83..2e22b366cd8ba 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_offsets.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_offsets.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; size_t OffsetSrc = 2 * size_t(Size / 4); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host.cpp index 9740c84e2f5ea..0eb84fe15ebfc 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_2d.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_2d.cpp index 6429d5e8de000..b034f33afb62d 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_2d.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_2d.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size * Size), DataB(Size * Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_offset.cpp b/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_offset.cpp index b9e9846c8b72d..a4ccbb0f795f8 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_offset.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_copy_target2host_offset.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_fill.cpp b/sycl/test-e2e/Graph/Inputs/buffer_fill.cpp index d386f7310ef6a..01bad620f329c 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_fill.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_fill.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - const size_t N = 10; const float Pattern = 3.14f; std::vector Data(N); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_fill_2d.cpp b/sycl/test-e2e/Graph/Inputs/buffer_fill_2d.cpp index 2c7699e74d7ca..6df446e074e3f 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_fill_2d.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_fill_2d.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - const size_t N = 10; const float Pattern = 3.14f; std::vector Data(N * N); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_fill_3d.cpp b/sycl/test-e2e/Graph/Inputs/buffer_fill_3d.cpp index cb2e22ec87af5..30c64f5cbb6af 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_fill_3d.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_fill_3d.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - const size_t N = 10; const float Pattern = 3.14f; std::vector Data(N * N * N); diff --git a/sycl/test-e2e/Graph/Inputs/buffer_ordering.cpp b/sycl/test-e2e/Graph/Inputs/buffer_ordering.cpp index 6a51c8ff4354e..8039e5eb87106 100644 --- a/sycl/test-e2e/Graph/Inputs/buffer_ordering.cpp +++ b/sycl/test-e2e/Graph/Inputs/buffer_ordering.cpp @@ -14,10 +14,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - const size_t N = 10; std::vector Arr(N, 0); diff --git a/sycl/test-e2e/Graph/Inputs/debug_print_graph.cpp b/sycl/test-e2e/Graph/Inputs/debug_print_graph.cpp index fa997b81dd4d6..ee2fddb8f414d 100644 --- a/sycl/test-e2e/Graph/Inputs/debug_print_graph.cpp +++ b/sycl/test-e2e/Graph/Inputs/debug_print_graph.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = unsigned short; std::vector DataA(Size), DataB(Size), DataC(Size), DataD(Size); diff --git a/sycl/test-e2e/Graph/Inputs/debug_print_graph_verbose.cpp b/sycl/test-e2e/Graph/Inputs/debug_print_graph_verbose.cpp index 2eb8e034f6363..94f1e75832138 100644 --- a/sycl/test-e2e/Graph/Inputs/debug_print_graph_verbose.cpp +++ b/sycl/test-e2e/Graph/Inputs/debug_print_graph_verbose.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = unsigned short; std::vector DataA(Size), DataB(Size), DataC(Size), DataD(Size); diff --git a/sycl/test-e2e/Graph/Inputs/dotp_buffer_reduction.cpp b/sycl/test-e2e/Graph/Inputs/dotp_buffer_reduction.cpp index 0cb8522a6832b..ac73bc86c6ce4 100644 --- a/sycl/test-e2e/Graph/Inputs/dotp_buffer_reduction.cpp +++ b/sycl/test-e2e/Graph/Inputs/dotp_buffer_reduction.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - int DotpData = 0; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Inputs/dotp_usm_reduction.cpp b/sycl/test-e2e/Graph/Inputs/dotp_usm_reduction.cpp index b1a98f6df09c3..d780de3c6f540 100644 --- a/sycl/test-e2e/Graph/Inputs/dotp_usm_reduction.cpp +++ b/sycl/test-e2e/Graph/Inputs/dotp_usm_reduction.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; int *Dotp = malloc_device(1, Queue); diff --git a/sycl/test-e2e/Graph/Inputs/double_buffer.cpp b/sycl/test-e2e/Graph/Inputs/double_buffer.cpp index 407fe290c8563..ac340ecd08091 100644 --- a/sycl/test-e2e/Graph/Inputs/double_buffer.cpp +++ b/sycl/test-e2e/Graph/Inputs/double_buffer.cpp @@ -7,10 +7,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/empty_node.cpp b/sycl/test-e2e/Graph/Inputs/empty_node.cpp index 83be717263926..1b2b3c303a637 100644 --- a/sycl/test-e2e/Graph/Inputs/empty_node.cpp +++ b/sycl/test-e2e/Graph/Inputs/empty_node.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - auto MyProperties = property_list{exp_ext::property::graph::no_cycle_check()}; exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device(), MyProperties}; diff --git a/sycl/test-e2e/Graph/Inputs/event_status_querying.cpp b/sycl/test-e2e/Graph/Inputs/event_status_querying.cpp index a932eb3ece6c1..03df08140ddfb 100644 --- a/sycl/test-e2e/Graph/Inputs/event_status_querying.cpp +++ b/sycl/test-e2e/Graph/Inputs/event_status_querying.cpp @@ -36,10 +36,6 @@ std::string event_status_name(sycl::info::event_command_status status) { int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; const T ModValue = 7; diff --git a/sycl/test-e2e/Graph/Inputs/executable_graph_update.cpp b/sycl/test-e2e/Graph/Inputs/executable_graph_update.cpp index 8794d07a7341f..96c2c0c325024 100644 --- a/sycl/test-e2e/Graph/Inputs/executable_graph_update.cpp +++ b/sycl/test-e2e/Graph/Inputs/executable_graph_update.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp b/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp index 3ab5fe0c7d9c9..c38cf6d4f5e3c 100644 --- a/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp +++ b/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp @@ -7,16 +7,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - std::vector DataA(Size), DataB(Size), DataC(Size); std::vector HostTaskOutput(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task.cpp b/sycl/test-e2e/Graph/Inputs/host_task.cpp index 94c24dabdfebb..8ec19d770dbcb 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task.cpp @@ -5,16 +5,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task2.cpp b/sycl/test-e2e/Graph/Inputs/host_task2.cpp index 00aceabb9da1e..6fddddf489b32 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task2.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task2.cpp @@ -5,16 +5,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp b/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp index c71f93d76cff6..c4d03e3be9e4b 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp @@ -6,16 +6,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size), Res2(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task_last.cpp b/sycl/test-e2e/Graph/Inputs/host_task_last.cpp index aafbd67081699..07cc7f1dc61ae 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_last.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_last.cpp @@ -5,16 +5,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp b/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp index e3610322f04c9..efe0846450539 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp @@ -6,16 +6,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp b/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp index d1ac0b4c1bb72..62dc577106e37 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp @@ -6,16 +6,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size), Res2(Size); diff --git a/sycl/test-e2e/Graph/Inputs/host_task_single.cpp b/sycl/test-e2e/Graph/Inputs/host_task_single.cpp index 44f13354bcb67..d87d6d1f76e54 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_single.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_single.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; const T ModValue = T{7}; diff --git a/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp b/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp index d17d75b9c4ba0..1312ea1074da9 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp @@ -5,16 +5,8 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/interop-level-zero-get-native-mem.cpp b/sycl/test-e2e/Graph/Inputs/interop-level-zero-get-native-mem.cpp index 16f30d9fcc3b6..3452dd54d8564 100644 --- a/sycl/test-e2e/Graph/Inputs/interop-level-zero-get-native-mem.cpp +++ b/sycl/test-e2e/Graph/Inputs/interop-level-zero-get-native-mem.cpp @@ -33,10 +33,6 @@ int main() { context Context1{Dev1}; queue Queue{Context1, Dev1}; - if (!are_graphs_supported(Queue)) { - return 0; - } - auto Context = Queue.get_context(); auto Device = Queue.get_info(); diff --git a/sycl/test-e2e/Graph/Inputs/kernel_bundle.cpp b/sycl/test-e2e/Graph/Inputs/kernel_bundle.cpp index 6f77db3f3cfd7..b7a15992eaafb 100644 --- a/sycl/test-e2e/Graph/Inputs/kernel_bundle.cpp +++ b/sycl/test-e2e/Graph/Inputs/kernel_bundle.cpp @@ -12,10 +12,6 @@ int main() { queue Queue{Ctx, Dev}; - if (!are_graphs_supported(Queue)) { - return 0; - } - sycl::kernel_id KernelID = sycl::get_kernel_id(); sycl::kernel_bundle KernelBundleInput = diff --git a/sycl/test-e2e/Graph/Inputs/memadvise.cpp b/sycl/test-e2e/Graph/Inputs/memadvise.cpp index f3e8828d6bea5..45a5f74d95060 100644 --- a/sycl/test-e2e/Graph/Inputs/memadvise.cpp +++ b/sycl/test-e2e/Graph/Inputs/memadvise.cpp @@ -10,14 +10,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().get_info()) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; T *Src = (T *)malloc_shared(sizeof(T) * Count, Queue.get_device(), diff --git a/sycl/test-e2e/Graph/Inputs/multiple_exec_graphs.cpp b/sycl/test-e2e/Graph/Inputs/multiple_exec_graphs.cpp index e5703be362c94..07bf4c0e4c2eb 100644 --- a/sycl/test-e2e/Graph/Inputs/multiple_exec_graphs.cpp +++ b/sycl/test-e2e/Graph/Inputs/multiple_exec_graphs.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/multiple_kernel_bundles.cpp b/sycl/test-e2e/Graph/Inputs/multiple_kernel_bundles.cpp index dfd98d1934046..5c49cf66c3b80 100644 --- a/sycl/test-e2e/Graph/Inputs/multiple_kernel_bundles.cpp +++ b/sycl/test-e2e/Graph/Inputs/multiple_kernel_bundles.cpp @@ -16,10 +16,6 @@ int main() { queue Queue{Ctx, Dev}; - if (!are_graphs_supported(Queue)) { - return 0; - } - sycl::kernel_id Kernel1ID = sycl::get_kernel_id(); sycl::kernel_id Kernel2ID = sycl::get_kernel_id(); diff --git a/sycl/test-e2e/Graph/Inputs/prefetch.cpp b/sycl/test-e2e/Graph/Inputs/prefetch.cpp index f043c08b7e4ca..9e459189e6288 100644 --- a/sycl/test-e2e/Graph/Inputs/prefetch.cpp +++ b/sycl/test-e2e/Graph/Inputs/prefetch.cpp @@ -10,14 +10,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().get_info()) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; T *Src = (T *)malloc_shared(sizeof(T) * Count, Queue.get_device(), diff --git a/sycl/test-e2e/Graph/Inputs/queue_constructor_buffer.cpp b/sycl/test-e2e/Graph/Inputs/queue_constructor_buffer.cpp index 7f3ddd1447018..a2c8ca1ef1733 100644 --- a/sycl/test-e2e/Graph/Inputs/queue_constructor_buffer.cpp +++ b/sycl/test-e2e/Graph/Inputs/queue_constructor_buffer.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = unsigned short; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/queue_constructor_usm.cpp b/sycl/test-e2e/Graph/Inputs/queue_constructor_usm.cpp index 66f855611865c..1cfbec6cfea6b 100644 --- a/sycl/test-e2e/Graph/Inputs/queue_constructor_usm.cpp +++ b/sycl/test-e2e/Graph/Inputs/queue_constructor_usm.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/queue_shortcuts.cpp b/sycl/test-e2e/Graph/Inputs/queue_shortcuts.cpp index 66405288bc1e2..f3ce17bc9c92e 100644 --- a/sycl/test-e2e/Graph/Inputs/queue_shortcuts.cpp +++ b/sycl/test-e2e/Graph/Inputs/queue_shortcuts.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/repeated_exec.cpp b/sycl/test-e2e/Graph/Inputs/repeated_exec.cpp index c207c5a0197ee..d330fed1c3554 100644 --- a/sycl/test-e2e/Graph/Inputs/repeated_exec.cpp +++ b/sycl/test-e2e/Graph/Inputs/repeated_exec.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Inputs/spec_constants_handler_api.cpp b/sycl/test-e2e/Graph/Inputs/spec_constants_handler_api.cpp index 7c2ddfda5cd4a..31e3ba2abb290 100644 --- a/sycl/test-e2e/Graph/Inputs/spec_constants_handler_api.cpp +++ b/sycl/test-e2e/Graph/Inputs/spec_constants_handler_api.cpp @@ -35,10 +35,6 @@ int main() { queue Queue{ExceptionHandler}; - if (!are_graphs_supported(Queue)) { - return 0; - } - unsigned Errors = 0; if (!test_default_values(Queue)) { std::cout << "Test for default values of specialization constants failed!" diff --git a/sycl/test-e2e/Graph/Inputs/spec_constants_kernel_bundle_api.cpp b/sycl/test-e2e/Graph/Inputs/spec_constants_kernel_bundle_api.cpp index 6fb49f4898813..3570cbe1cdf54 100644 --- a/sycl/test-e2e/Graph/Inputs/spec_constants_kernel_bundle_api.cpp +++ b/sycl/test-e2e/Graph/Inputs/spec_constants_kernel_bundle_api.cpp @@ -32,10 +32,6 @@ int main() { queue Queue{ExceptionHandler}; - if (!are_graphs_supported(Queue)) { - return 0; - } - unsigned Errors = 0; if (!test_default_values(Queue)) { std::cout << "Test for default values of specialization constants failed!" diff --git a/sycl/test-e2e/Graph/Inputs/stream.cpp b/sycl/test-e2e/Graph/Inputs/stream.cpp index a194cae835ab2..35279729a4398 100644 --- a/sycl/test-e2e/Graph/Inputs/stream.cpp +++ b/sycl/test-e2e/Graph/Inputs/stream.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; size_t WorkItems = 16; diff --git a/sycl/test-e2e/Graph/Inputs/sub_graph.cpp b/sycl/test-e2e/Graph/Inputs/sub_graph.cpp index 031823e16e8c7..dcee2846d4e81 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_graph.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_graph.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = short; // Values used to modify data inside kernels. diff --git a/sycl/test-e2e/Graph/Inputs/sub_graph_execute_without_parent.cpp b/sycl/test-e2e/Graph/Inputs/sub_graph_execute_without_parent.cpp index d55ee789a66af..3c7da306f725a 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_graph_execute_without_parent.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_graph_execute_without_parent.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph SubGraph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/Inputs/sub_graph_multiple_submission.cpp b/sycl/test-e2e/Graph/Inputs/sub_graph_multiple_submission.cpp index f333f651d1b67..6706b9b78187f 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_graph_multiple_submission.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_graph_multiple_submission.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph SubGraph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/Inputs/sub_graph_nested.cpp b/sycl/test-e2e/Graph/Inputs/sub_graph_nested.cpp index 81c7763564339..be68e1a91b32e 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_graph_nested.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_graph_nested.cpp @@ -26,10 +26,6 @@ int reference(size_t i) { int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph SubGraph{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph XSubSubGraph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/Inputs/sub_graph_reduction.cpp b/sycl/test-e2e/Graph/Inputs/sub_graph_reduction.cpp index 4d3298621287e..30d07962fae39 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_graph_reduction.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_graph_reduction.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph SubGraph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/Inputs/sub_graph_two_parent_graphs.cpp b/sycl/test-e2e/Graph/Inputs/sub_graph_two_parent_graphs.cpp index 6289c43234379..0b825beb3c1a4 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_graph_two_parent_graphs.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_graph_two_parent_graphs.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph GraphA{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph GraphB{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph SubGraph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/Inputs/sub_group_prop.cpp b/sycl/test-e2e/Graph/Inputs/sub_group_prop.cpp index e7d30e2221956..7d85a28416e92 100644 --- a/sycl/test-e2e/Graph/Inputs/sub_group_prop.cpp +++ b/sycl/test-e2e/Graph/Inputs/sub_group_prop.cpp @@ -143,10 +143,6 @@ void test(queue &Queue, const std::vector SupportedSGSizes) { int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - std::vector SupportedSGSizes = Queue.get_device().get_info(); diff --git a/sycl/test-e2e/Graph/Inputs/temp_buffer_reinterpret.cpp b/sycl/test-e2e/Graph/Inputs/temp_buffer_reinterpret.cpp index 13babd61c78b9..de3b0e570f83d 100644 --- a/sycl/test-e2e/Graph/Inputs/temp_buffer_reinterpret.cpp +++ b/sycl/test-e2e/Graph/Inputs/temp_buffer_reinterpret.cpp @@ -8,10 +8,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/Inputs/usm_copy.cpp b/sycl/test-e2e/Graph/Inputs/usm_copy.cpp index 309198afd22ae..636eea9b7c885 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_copy.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_copy.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; const T ModValue = 7; diff --git a/sycl/test-e2e/Graph/Inputs/usm_fill.cpp b/sycl/test-e2e/Graph/Inputs/usm_fill.cpp index 6c57588afbb77..1b69952327b9e 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp b/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp index fcba94fe61221..5729abf20d4d4 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp @@ -5,14 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().has(sycl::aspect::usm_host_allocations)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp b/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp index 9ec3450070afa..a8eb04ab04204 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp @@ -5,14 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Inputs/usm_memset.cpp b/sycl/test-e2e/Graph/Inputs/usm_memset.cpp index d823599921522..90212be27d37a 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_memset.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_memset.cpp @@ -6,10 +6,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/Inputs/work_group_size_prop.cpp b/sycl/test-e2e/Graph/Inputs/work_group_size_prop.cpp index 8b11c6572b4a5..550d6af01e95b 100644 --- a/sycl/test-e2e/Graph/Inputs/work_group_size_prop.cpp +++ b/sycl/test-e2e/Graph/Inputs/work_group_size_prop.cpp @@ -190,10 +190,6 @@ template int test(queue &Queue) { int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - int Res = 0; Res += test<4>(Queue); Res += test<4, 4>(Queue); diff --git a/sycl/test-e2e/Graph/event_profiling_info.cpp b/sycl/test-e2e/Graph/Profiling/event_profiling_info.cpp similarity index 99% rename from sycl/test-e2e/Graph/event_profiling_info.cpp rename to sycl/test-e2e/Graph/Profiling/event_profiling_info.cpp index c94117ea655ec..a0abf0e9e9961 100644 --- a/sycl/test-e2e/Graph/event_profiling_info.cpp +++ b/sycl/test-e2e/Graph/Profiling/event_profiling_info.cpp @@ -11,7 +11,7 @@ // It first tests a graph made exclusively of memory operations, // then tests a graph made of kernels. -#include "graph_common.hpp" +#include "../graph_common.hpp" #define GRAPH_TESTS_VERBOSE_PRINT 0 diff --git a/sycl/test-e2e/Graph/Profiling/lit.local.cfg b/sycl/test-e2e/Graph/Profiling/lit.local.cfg new file mode 100644 index 0000000000000..9c0c4cc846295 --- /dev/null +++ b/sycl/test-e2e/Graph/Profiling/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/RecordReplay/after_use.cpp b/sycl/test-e2e/Graph/RecordReplay/after_use.cpp index 0ea585549b321..cb7f911570410 100644 --- a/sycl/test-e2e/Graph/RecordReplay/after_use.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/after_use.cpp @@ -14,10 +14,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/RecordReplay/barrier_with_work.cpp b/sycl/test-e2e/Graph/RecordReplay/barrier_with_work.cpp index d4109004363dc..0a3c8b07e8627 100644 --- a/sycl/test-e2e/Graph/RecordReplay/barrier_with_work.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/barrier_with_work.cpp @@ -64,10 +64,6 @@ event run_kernels_usm_with_barrier(queue Q, const size_t Size, T *DataA, int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/RecordReplay/basic_usm_host.cpp b/sycl/test-e2e/Graph/RecordReplay/basic_usm_host.cpp index 0e9614e8dc986..c40c2537e3432 100644 --- a/sycl/test-e2e/Graph/RecordReplay/basic_usm_host.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/basic_usm_host.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_host_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/basic_usm_mixed.cpp b/sycl/test-e2e/Graph/RecordReplay/basic_usm_mixed.cpp index 3877a5d8f4172..ee91a6b49b3d6 100644 --- a/sycl/test-e2e/Graph/RecordReplay/basic_usm_mixed.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/basic_usm_mixed.cpp @@ -4,7 +4,9 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_host_allocations +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/basic_usm_shared.cpp b/sycl/test-e2e/Graph/RecordReplay/basic_usm_shared.cpp index a26685577833f..f17d65de935e3 100644 --- a/sycl/test-e2e/Graph/RecordReplay/basic_usm_shared.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/basic_usm_shared.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/basic_usm_system.cpp b/sycl/test-e2e/Graph/RecordReplay/basic_usm_system.cpp index 55902afaba9dd..ff1ee23b6f188 100644 --- a/sycl/test-e2e/Graph/RecordReplay/basic_usm_system.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/basic_usm_system.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_system_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/concurrent_queue.cpp b/sycl/test-e2e/Graph/RecordReplay/concurrent_queue.cpp index e0b514d41c8d2..9e9d65d4968b4 100644 --- a/sycl/test-e2e/Graph/RecordReplay/concurrent_queue.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/concurrent_queue.cpp @@ -14,10 +14,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - bool Success = false; exp_ext::command_graph GraphA{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/RecordReplay/dotp_in_order.cpp b/sycl/test-e2e/Graph/RecordReplay/dotp_in_order.cpp index fbd341f5bb4ed..c14422a2595d2 100644 --- a/sycl/test-e2e/Graph/RecordReplay/dotp_in_order.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/dotp_in_order.cpp @@ -14,10 +14,6 @@ int main() { property_list Properties{property::queue::in_order{}}; queue Queue{Properties}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; int *Dotp = malloc_device(1, Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_pause.cpp b/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_pause.cpp index f0545a5619add..099493ec87e4e 100644 --- a/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_pause.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_pause.cpp @@ -32,10 +32,6 @@ int main() { property_list Properties{property::queue::in_order{}}; queue Queue{Properties}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; int *Dotp = malloc_device(1, Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_with_empty_nodes.cpp b/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_with_empty_nodes.cpp index 04cbb8c7b0a0f..1831519852140 100644 --- a/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_with_empty_nodes.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/dotp_in_order_with_empty_nodes.cpp @@ -16,10 +16,6 @@ int main() { property_list Properties{property::queue::in_order{}}; queue Queue{Properties}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; int *Dotp = malloc_device(1, Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/dotp_multiple_queues.cpp b/sycl/test-e2e/Graph/RecordReplay/dotp_multiple_queues.cpp index 01d3d11901d41..fdcf03ad4ec62 100644 --- a/sycl/test-e2e/Graph/RecordReplay/dotp_multiple_queues.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/dotp_multiple_queues.cpp @@ -14,10 +14,6 @@ int main() { property_list Properties{property::queue::in_order{}}; queue QueueA{Properties}; - if (!are_graphs_supported(QueueA)) { - return 0; - } - queue QueueB{QueueA.get_context(), QueueA.get_device(), Properties}; exp_ext::command_graph Graph{QueueA.get_context(), QueueA.get_device()}; diff --git a/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_contexts.cpp b/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_contexts.cpp index 34349b87d815a..714c08785149a 100644 --- a/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_contexts.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_contexts.cpp @@ -13,10 +13,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - context InOrderContext; exp_ext::command_graph Graph{InOrderContext, Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_devices.cpp b/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_devices.cpp index 329922e8b5c40..38a71ca2506f8 100644 --- a/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_devices.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/exception_inconsistent_devices.cpp @@ -2,7 +2,7 @@ // RUN: %{run-unfiltered-devices} %t.out // -// This test checks that an expection is thrown when we try to +// This test checks that an exception is thrown when we try to // record a graph whose device differs from the queue device. // We ensure that the exception code matches the expected code. @@ -30,12 +30,12 @@ int main() { return 0; } - queue Queue{Dev1}; - - if (!are_graphs_supported(Queue)) { + if (!Dev0.has(aspect::ext_oneapi_graph)) { + std::cout << "Test skipped: device doesn't support graphs" << std::endl; return 0; } + queue Queue{Dev1}; exp_ext::command_graph Graph{Queue.get_context(), Dev0}; std::error_code ExceptionCode = make_error_code(sycl::errc::success); diff --git a/sycl/test-e2e/Graph/RecordReplay/executable_graph_update_ordering.cpp b/sycl/test-e2e/Graph/RecordReplay/executable_graph_update_ordering.cpp index f8f4b8a2fd0e0..71d8d7133780e 100644 --- a/sycl/test-e2e/Graph/RecordReplay/executable_graph_update_ordering.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/executable_graph_update_ordering.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations // Skip as executable graph update and host tasks both aren't // implemented. diff --git a/sycl/test-e2e/Graph/RecordReplay/finalize_while_recording.cpp b/sycl/test-e2e/Graph/RecordReplay/finalize_while_recording.cpp index 1d57a663813c6..ebe4621e61ca7 100644 --- a/sycl/test-e2e/Graph/RecordReplay/finalize_while_recording.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/finalize_while_recording.cpp @@ -14,10 +14,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; Graph.begin_recording(Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task.cpp index d939f2b46b5b3..a0ce9be30c0f2 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task2.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task2.cpp index de66aa69f3c04..c39729f0c884e 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task2.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task2.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task2_multiple_roots.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task2_multiple_roots.cpp index 09d51f36526bf..f8eb8937dceb5 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task2_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task2_multiple_roots.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp index ecdf64fc89d11..d1bc7d4570fa7 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations // This test uses a host_task when adding a command_graph node to an // in-order queue. @@ -14,16 +15,8 @@ int main() { queue Queue{property::queue::in_order{}}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { - return 0; - } - const T ModValue = T{7}; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task_last.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task_last.cpp index 351876bd27127..9bd6d69e64ee0 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task_last.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task_last.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_deps.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_deps.cpp index 0f6faf916fd95..119fbdb9eb854 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_deps.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_deps.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_roots.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_roots.cpp index 3bc9aaabb8681..279ac432a091f 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task_multiple_roots.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/host_task_successive.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task_successive.cpp index c1fa5993edd15..cb715858c8665 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task_successive.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task_successive.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies.cpp b/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies.cpp index 352052134fa7d..90cc06ce15587 100644 --- a/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %{run} %t.out +// REQUIRES: aspect-usm_shared_allocations + // Tests submitting a host kernel to an in-order queue before recording // commands from it. @@ -11,14 +13,6 @@ int main() { queue Queue{sycl::property::queue::in_order{}}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - // Check if device has usm shared allocation - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) - return 0; - T *TestData = sycl::malloc_shared(Size, Queue); ext::oneapi::experimental::command_graph Graph{Queue.get_context(), diff --git a/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memcpy.cpp b/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memcpy.cpp index b7a69d615d2f2..b916487e0bb5b 100644 --- a/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memcpy.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memcpy.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %{run} %t.out +// REQUIRES: aspect-usm_shared_allocations + // Tests submitting memcpy to an in-order queue before recording // commands from it. @@ -11,14 +13,6 @@ int main() { queue Queue{sycl::property::queue::in_order{}}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - // Check if device has usm shared allocation - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) - return 0; - std::vector TestDataIn(Size); T *TestData = sycl::malloc_shared(Size, Queue); T *TestDataOut = sycl::malloc_shared(Size, Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memset.cpp b/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memset.cpp index 5cf3b61c6af50..fc1e1049e7613 100644 --- a/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memset.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/in_order_queue_with_host_managed_dependencies_memset.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %{run} %t.out +// REQUIRES: aspect-usm_shared_allocations + // Tests submitting memset to an in-order queue before recording // commands from it. @@ -11,14 +13,6 @@ int main() { queue Queue{sycl::property::queue::in_order{}}; - if (!are_graphs_supported(Queue)) { - return 0; - } - - // Check if device has usm shared allocation - if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) - return 0; - T *TestData = sycl::malloc_shared(Size, Queue); T *TestDataOut = sycl::malloc_shared(Size, Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg b/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg new file mode 100644 index 0000000000000..9c0c4cc846295 --- /dev/null +++ b/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/RecordReplay/memadvise.cpp b/sycl/test-e2e/Graph/RecordReplay/memadvise.cpp index a5b87f8143832..d2e28d01bc3c2 100644 --- a/sycl/test-e2e/Graph/RecordReplay/memadvise.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/memadvise.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %if linux && (level_zero || cuda) %{ env SYCL_PI_TRACE=2 %{run} %t.out 2>&1 FileCheck %s %} %else %{ %{run} %t.out %} +// REQUIRES: aspect-usm_shared_allocations + // Mem advise command not supported for OpenCL // UNSUPPORTED: opencl diff --git a/sycl/test-e2e/Graph/RecordReplay/prefetch.cpp b/sycl/test-e2e/Graph/RecordReplay/prefetch.cpp index dca297f7772b3..e6cf0eb8f951b 100644 --- a/sycl/test-e2e/Graph/RecordReplay/prefetch.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/prefetch.cpp @@ -1,6 +1,8 @@ // RUN: %{build} -o %t.out // RUN: %if linux && (level_zero || cuda) %{ env SYCL_PI_TRACE=2 %{run} %t.out 2>&1 FileCheck %s %} %else %{ %{run} %t.out %} +// REQUIRES: aspect-usm_shared_allocations + // prefetch command not supported for OpenCL // UNSUPPORTED: opencl diff --git a/sycl/test-e2e/Graph/RecordReplay/return_values.cpp b/sycl/test-e2e/Graph/RecordReplay/return_values.cpp index 08b543f8780f0..1e3e7e6bd154f 100644 --- a/sycl/test-e2e/Graph/RecordReplay/return_values.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/return_values.cpp @@ -13,10 +13,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; bool ChangedState = Graph.end_recording(); diff --git a/sycl/test-e2e/Graph/RecordReplay/sub_graph_in_order.cpp b/sycl/test-e2e/Graph/RecordReplay/sub_graph_in_order.cpp index eb7104eb76e73..d193af4f2d7df 100644 --- a/sycl/test-e2e/Graph/RecordReplay/sub_graph_in_order.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/sub_graph_in_order.cpp @@ -14,10 +14,6 @@ int main() { property_list Properties{property::queue::in_order{}}; queue Queue{Properties}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; exp_ext::command_graph SubGraph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/RecordReplay/temp_buffer.cpp b/sycl/test-e2e/Graph/RecordReplay/temp_buffer.cpp index 81b024572cde0..83d5dc6fc113b 100644 --- a/sycl/test-e2e/Graph/RecordReplay/temp_buffer.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/temp_buffer.cpp @@ -19,10 +19,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; std::vector DataA(Size), DataB(Size), DataC(Size); diff --git a/sycl/test-e2e/Graph/RecordReplay/temp_scope.cpp b/sycl/test-e2e/Graph/RecordReplay/temp_scope.cpp index 590888b591c1c..704c8bcac44e9 100644 --- a/sycl/test-e2e/Graph/RecordReplay/temp_scope.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/temp_scope.cpp @@ -28,10 +28,6 @@ void run_some_kernel(queue Queue, int *Data) { int main() { queue Queue{default_selector_v}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; int *Arr = malloc_device(N, Queue); diff --git a/sycl/test-e2e/Graph/RecordReplay/usm_copy_in_order.cpp b/sycl/test-e2e/Graph/RecordReplay/usm_copy_in_order.cpp index f35d3086e7ed1..0b5794c50c602 100644 --- a/sycl/test-e2e/Graph/RecordReplay/usm_copy_in_order.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/usm_copy_in_order.cpp @@ -17,10 +17,6 @@ int main() { property_list Properties{property::queue::in_order{}}; queue Queue{Properties}; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/RecordReplay/usm_fill_host.cpp b/sycl/test-e2e/Graph/RecordReplay/usm_fill_host.cpp index da1e95536a680..0e9b3dbdb39e8 100644 --- a/sycl/test-e2e/Graph/RecordReplay/usm_fill_host.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/usm_fill_host.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_host_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/usm_fill_shared.cpp b/sycl/test-e2e/Graph/RecordReplay/usm_fill_shared.cpp index 6b68f4646425a..950afd3da8b97 100644 --- a/sycl/test-e2e/Graph/RecordReplay/usm_fill_shared.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/usm_fill_shared.cpp @@ -4,7 +4,8 @@ // RUN: %if level_zero %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=0 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} // Extra run to check for immediate-command-list in Level Zero // RUN: %if level_zero && linux %{env SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1 %{l0_leak_check} %{run} %t.out 2>&1 | FileCheck %s --implicit-check-not=LEAK %} -// + +// REQUIRES: aspect-usm_shared_allocations #define GRAPH_E2E_RECORD_REPLAY diff --git a/sycl/test-e2e/Graph/RecordReplay/usm_memset_shortcut.cpp b/sycl/test-e2e/Graph/RecordReplay/usm_memset_shortcut.cpp index 77af25a0e259a..9506e99cd73ad 100644 --- a/sycl/test-e2e/Graph/RecordReplay/usm_memset_shortcut.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/usm_memset_shortcut.cpp @@ -11,10 +11,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; const size_t N = 10; diff --git a/sycl/test-e2e/Graph/RecordReplay/valid_no_end.cpp b/sycl/test-e2e/Graph/RecordReplay/valid_no_end.cpp index 1382cf1a24a64..2dbe0795b9093 100644 --- a/sycl/test-e2e/Graph/RecordReplay/valid_no_end.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/valid_no_end.cpp @@ -14,10 +14,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - exp_ext::command_graph Graph{Queue.get_context(), Queue.get_device()}; { queue MyQueue(Queue.get_context(), Queue.get_device()); diff --git a/sycl/test-e2e/Graph/Threading/lit.local.cfg b/sycl/test-e2e/Graph/Threading/lit.local.cfg new file mode 100644 index 0000000000000..9c0c4cc846295 --- /dev/null +++ b/sycl/test-e2e/Graph/Threading/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/Threading/submit.cpp b/sycl/test-e2e/Graph/Threading/submit.cpp index aa094d95aae21..1a815b188630e 100644 --- a/sycl/test-e2e/Graph/Threading/submit.cpp +++ b/sycl/test-e2e/Graph/Threading/submit.cpp @@ -17,10 +17,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; const unsigned NumThreads = std::thread::hardware_concurrency(); diff --git a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp new file mode 100644 index 0000000000000..11e98262bf390 --- /dev/null +++ b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp @@ -0,0 +1,26 @@ +// RUN: %{build} -o %t.out +// RUN: %{run} %t.out + +// OpenCL support depends on extensions +// UNSUPPORTED: opencl + +// Tests the using device query for graphs support, and that the return value +// matches expectations. + +#include "../graph_common.hpp" + +int main() { + queue Queue; + + auto Device = Queue.get_device(); + bool SupportsGraphs = Device.has(aspect::ext_oneapi_graph); + auto Backend = Device.get_backend(); + + if ((Backend == backend::ext_oneapi_level_zero) || + (Backend == backend::ext_oneapi_cuda) || + (Backend == backend::ext_oneapi_hip)) { + assert(SupportsGraphs); + } else { + assert(!SupportsGraphs); + } +} diff --git a/sycl/test-e2e/Graph/exception_unsupported_backend.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp similarity index 69% rename from sycl/test-e2e/Graph/exception_unsupported_backend.cpp rename to sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp index 9453f35fa9b3d..b8f62ade21b84 100644 --- a/sycl/test-e2e/Graph/exception_unsupported_backend.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp @@ -5,22 +5,19 @@ // The test checks that invalid exception is thrown // when trying to create a graph with an unsupported backend. -#include "graph_common.hpp" +#include "../graph_common.hpp" int GetUnsupportedBackend(const sycl::device &Dev) { // Return 1 if the device backend is unsupported or 0 else. // 0 does not prevent another device to be picked as a second choice - return Dev.get_info< - ext::oneapi::experimental::info::device::graph_support>() == - ext::oneapi::experimental::graph_support_level::unsupported; + return !Dev.has(aspect::ext_oneapi_graph); } int main() { sycl::device Dev{GetUnsupportedBackend}; queue Queue{Dev}; - if (Dev.get_info() != - ext::oneapi::experimental::graph_support_level::unsupported) + if (Dev.has(aspect::ext_oneapi_graph)) return 0; std::error_code ExceptionCode = make_error_code(sycl::errc::success); diff --git a/sycl/test-e2e/Graph/empty_graph.cpp b/sycl/test-e2e/Graph/ValidUsage/empty_graph.cpp similarity index 92% rename from sycl/test-e2e/Graph/empty_graph.cpp rename to sycl/test-e2e/Graph/ValidUsage/empty_graph.cpp index 4e869dfb03db3..a9bb45dd5953d 100644 --- a/sycl/test-e2e/Graph/empty_graph.cpp +++ b/sycl/test-e2e/Graph/ValidUsage/empty_graph.cpp @@ -8,15 +8,11 @@ // Tests the ability to finalize and submit a command graph which doesn't // contain any nodes. -#include "graph_common.hpp" +#include "../graph_common.hpp" int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - ext::oneapi::experimental::command_graph Graph{Queue.get_context(), Queue.get_device()}; diff --git a/sycl/test-e2e/Graph/finalize_twice.cpp b/sycl/test-e2e/Graph/ValidUsage/finalize_twice.cpp similarity index 87% rename from sycl/test-e2e/Graph/finalize_twice.cpp rename to sycl/test-e2e/Graph/ValidUsage/finalize_twice.cpp index 1c51f13e75479..be8234d3123d9 100644 --- a/sycl/test-e2e/Graph/finalize_twice.cpp +++ b/sycl/test-e2e/Graph/ValidUsage/finalize_twice.cpp @@ -3,15 +3,11 @@ // Tests calling finalize() more than once on the same command_graph. -#include "graph_common.hpp" +#include "../graph_common.hpp" int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - ext::oneapi::experimental::command_graph Graph{Queue.get_context(), Queue.get_device()}; auto GraphExec = Graph.finalize(); diff --git a/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg b/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg new file mode 100644 index 0000000000000..9c0c4cc846295 --- /dev/null +++ b/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/device_query.cpp b/sycl/test-e2e/Graph/device_query.cpp deleted file mode 100644 index 3513aa74fa5b7..0000000000000 --- a/sycl/test-e2e/Graph/device_query.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// RUN: %{build} -o %t.out -// RUN: %{run} %t.out - -// Tests the using device query for graphs support, and that the return value -// matches expectations. - -#include "graph_common.hpp" - -int main() { - queue Queue; - - if (!are_graphs_supported(Queue)) { - return 0; - } - - auto Device = Queue.get_device(); - - exp_ext::graph_support_level SupportsGraphs = - Device.get_info(); - auto Backend = Device.get_backend(); - - if ((Backend == backend::ext_oneapi_level_zero) || - (Backend == backend::ext_oneapi_cuda) || - (Backend == backend::ext_oneapi_hip)) { - assert(SupportsGraphs == exp_ext::graph_support_level::native); - } else if (Backend == backend::opencl) { - // OpenCL backend support is conditional on the cl_khr_command_buffer - // extension being available - assert(SupportsGraphs == exp_ext::graph_support_level::native || - SupportsGraphs == exp_ext::graph_support_level::unsupported); - } else { - assert(SupportsGraphs == exp_ext::graph_support_level::unsupported); - } -} diff --git a/sycl/test-e2e/Graph/graph_common.hpp b/sycl/test-e2e/Graph/graph_common.hpp index 8905bbda7264f..eda7f3255f4ba 100644 --- a/sycl/test-e2e/Graph/graph_common.hpp +++ b/sycl/test-e2e/Graph/graph_common.hpp @@ -457,12 +457,3 @@ bool inline check_value(const size_t index, const T &Ref, const T &Got, return true; } - -bool are_graphs_supported(queue &Queue) { - auto Device = Queue.get_device(); - - exp_ext::graph_support_level SupportsGraphs = - Device.get_info(); - - return SupportsGraphs != exp_ext::graph_support_level::unsupported; -} diff --git a/sycl/test-e2e/InorderQueue/in_order_ext_oneapi_submit_barrier.cpp b/sycl/test-e2e/InorderQueue/in_order_ext_oneapi_submit_barrier.cpp index 698edc3e226e6..5bf864c1d9036 100644 --- a/sycl/test-e2e/InorderQueue/in_order_ext_oneapi_submit_barrier.cpp +++ b/sycl/test-e2e/InorderQueue/in_order_ext_oneapi_submit_barrier.cpp @@ -70,8 +70,7 @@ int main() { {sycl::property::queue::in_order{}, sycl::ext::intel::property::queue::no_immediate_command_list{}}}; - if (GQueue.get_device().get_info() != - syclex::graph_support_level::unsupported) { + if (GQueue.get_device().has(sycl::aspect::ext_oneapi_graph)) { std::cout << "Test 4" << std::endl; syclex::command_graph Graph{GQueue.get_context(), GQueue.get_device()}; *Res = 1; diff --git a/sycl/test/abi/sycl_symbols_linux.dump b/sycl/test/abi/sycl_symbols_linux.dump index 4fe3042f807ab..2a1ad47f148ff 100644 --- a/sycl/test/abi/sycl_symbols_linux.dump +++ b/sycl/test/abi/sycl_symbols_linux.dump @@ -4312,7 +4312,6 @@ _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device25max_compu _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device4uuidEEENT_11return_typeEv _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext5intel4info6device9device_idEEENT_11return_typeEv _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device12architectureEEENT_11return_typeEv -_ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device13graph_supportEEENT_11return_typeEv _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi1EEEEENT_11return_typeEv _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi2EEEEENT_11return_typeEv _ZNK4sycl3_V16detail11device_impl8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi3EEEEENT_11return_typeEv @@ -4494,7 +4493,6 @@ _ZNK4sycl3_V16device8get_infoINS0_3ext5intel4info6device25max_compute_queue_indi _ZNK4sycl3_V16device8get_infoINS0_3ext5intel4info6device4uuidEEENS0_6detail19is_device_info_descIT_E11return_typeEv _ZNK4sycl3_V16device8get_infoINS0_3ext5intel4info6device9device_idEEENS0_6detail19is_device_info_descIT_E11return_typeEv _ZNK4sycl3_V16device8get_infoINS0_3ext6oneapi12experimental4info6device12architectureEEENS0_6detail19is_device_info_descIT_E11return_typeEv -_ZNK4sycl3_V16device8get_infoINS0_3ext6oneapi12experimental4info6device13graph_supportEEENS0_6detail19is_device_info_descIT_E11return_typeEv _ZNK4sycl3_V16device8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi1EEEEENS0_6detail19is_device_info_descIT_E11return_typeEv _ZNK4sycl3_V16device8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi2EEEEENS0_6detail19is_device_info_descIT_E11return_typeEv _ZNK4sycl3_V16device8get_infoINS0_3ext6oneapi12experimental4info6device15max_work_groupsILi3EEEEENS0_6detail19is_device_info_descIT_E11return_typeEv diff --git a/sycl/test/abi/sycl_symbols_windows.dump b/sycl/test/abi/sycl_symbols_windows.dump index 435176097e7bd..bc0811431836f 100644 --- a/sycl/test/abi/sycl_symbols_windows.dump +++ b/sycl/test/abi/sycl_symbols_windows.dump @@ -104,8 +104,6 @@ ??$get_info@Ugpu_slices@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_subslices_per_slice@device@info@intel@ext@_V1@sycl@@@device@_V1@sycl@@QEBAIXZ ??$get_info@Ugpu_subslices_per_slice@device@info@intel@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBAIXZ -??$get_info@Ugraph_support@device@info@experimental@oneapi@ext@_V1@sycl@@@device@_V1@sycl@@QEBA?AW4graph_support_level@experimental@oneapi@ext@12@XZ -??$get_info@Ugraph_support@device@info@experimental@oneapi@ext@_V1@sycl@@@device_impl@detail@_V1@sycl@@QEBA?AW4graph_support_level@experimental@oneapi@ext@23@XZ ??$get_info@Uhalf_fp_config@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA?AV?$vector@W4fp_config@info@_V1@sycl@@V?$allocator@W4fp_config@info@_V1@sycl@@@std@@@std@@XZ ??$get_info@Uhost_unified_memory@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_NXZ ??$get_info@Uimage2d_max_height@device@info@_V1@sycl@@@device@_V1@sycl@@QEBA_KXZ