From 8b7e2ddc8935e86e15a4dd36c2bf94daf2e3299e Mon Sep 17 00:00:00 2001 From: Ewan Crawford Date: Fri, 23 Feb 2024 13:48:14 +0000 Subject: [PATCH 1/6] [SYCL][Graph] Skip Graph tests based on sycl-ls output The graph extension tests are currently skipped during execution for devices which don't support the graphs extension. However, this early return causes the tests to be reported as passed and makes it hard from looking at the results to know if the tests actually stressed the graphs code or not. Improved this situation by modifying `sycl-ls --verbose` to output the `sycl_ext_oneapi_graph` string when a device supports the graph extension. We can then use this to inform the LIT config and set a requirement for the `graph-extension` feature in the tests, similar to what is done for aspects. This enables the tests to be obviously skipped for devices that don't support graphs. To enable setting this requirement in `lit.local.cfg` files some extra directories have been created, in particular `UnsupportedDevice` which doesn't have a requirement on `graph-extension` as the tests verify expected behaviour with unsupported devices. --- sycl/test-e2e/Graph/{ => Error}/empty_graph.cpp | 6 +----- sycl/test-e2e/Graph/{ => Error}/finalize_twice.cpp | 6 +----- .../graph_exception_global_device_extension.cpp | 6 +----- .../Graph/{ => Error}/invalid_depends_on.cpp | 6 +----- .../Graph/{ => Error}/invalid_event_wait.cpp | 6 +----- .../Graph/{ => Error}/invalid_queue_wait.cpp | 6 +----- sycl/test-e2e/Graph/Error/lit.local.cfg | 1 + .../Graph/Explicit/add_node_while_recording.cpp | 4 ---- sycl/test-e2e/Graph/Explicit/cycle_error.cpp | 12 ------------ sycl/test-e2e/Graph/Explicit/depends_on.cpp | 4 ---- sycl/test-e2e/Graph/Explicit/enqueue_ordering.cpp | 4 ---- sycl/test-e2e/Graph/Explicit/lit.local.cfg | 1 + sycl/test-e2e/Graph/Explicit/node_ordering.cpp | 4 ---- sycl/test-e2e/Graph/Explicit/single_node.cpp | 4 ---- .../Graph/Inputs/add_nodes_after_finalize.cpp | 4 ---- .../Inputs/assume_buffer_outlives_graph_property.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_buffer.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_copy.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_copy_2d.cpp | 4 ---- .../Graph/Inputs/buffer_copy_host2target.cpp | 4 ---- .../Graph/Inputs/buffer_copy_host2target_2d.cpp | 4 ---- .../Graph/Inputs/buffer_copy_host2target_offset.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_copy_offsets.cpp | 4 ---- .../Graph/Inputs/buffer_copy_target2host.cpp | 4 ---- .../Graph/Inputs/buffer_copy_target2host_2d.cpp | 4 ---- .../Graph/Inputs/buffer_copy_target2host_offset.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_fill.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_fill_2d.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_fill_3d.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/buffer_ordering.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/debug_print_graph.cpp | 4 ---- .../Graph/Inputs/debug_print_graph_verbose.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/dotp_buffer_reduction.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/dotp_usm_reduction.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/double_buffer.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/empty_node.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/event_status_querying.cpp | 4 ---- .../Graph/Inputs/executable_graph_update.cpp | 4 ---- .../Inputs/executable_graph_update_ordering.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task2.cpp | 4 ---- .../Graph/Inputs/host_task2_multiple_roots.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_last.cpp | 4 ---- .../Graph/Inputs/host_task_multiple_deps.cpp | 4 ---- .../Graph/Inputs/host_task_multiple_roots.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_single.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_successive.cpp | 4 ---- .../Inputs/interop-level-zero-get-native-mem.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/kernel_bundle.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/memadvise.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/multiple_exec_graphs.cpp | 4 ---- .../Graph/Inputs/multiple_kernel_bundles.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/prefetch.cpp | 4 ---- .../Graph/Inputs/queue_constructor_buffer.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/queue_constructor_usm.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/queue_shortcuts.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/repeated_exec.cpp | 4 ---- .../Graph/Inputs/spec_constants_handler_api.cpp | 4 ---- .../Inputs/spec_constants_kernel_bundle_api.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/stream.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/sub_graph.cpp | 4 ---- .../Inputs/sub_graph_execute_without_parent.cpp | 4 ---- .../Graph/Inputs/sub_graph_multiple_submission.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/sub_graph_nested.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/sub_graph_reduction.cpp | 4 ---- .../Graph/Inputs/sub_graph_two_parent_graphs.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/sub_group_prop.cpp | 4 ---- .../Graph/Inputs/temp_buffer_reinterpret.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_copy.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_fill.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_memset.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/work_group_size_prop.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/after_use.cpp | 4 ---- .../Graph/RecordReplay/barrier_with_work.cpp | 4 ---- .../test-e2e/Graph/RecordReplay/concurrent_queue.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/dotp_in_order.cpp | 4 ---- .../Graph/RecordReplay/dotp_in_order_pause.cpp | 4 ---- .../RecordReplay/dotp_in_order_with_empty_nodes.cpp | 4 ---- .../Graph/RecordReplay/dotp_multiple_queues.cpp | 4 ---- .../{ => RecordReplay}/event_profiling_info.cpp | 2 +- .../RecordReplay/exception_inconsistent_contexts.cpp | 4 ---- .../Graph/RecordReplay/finalize_while_recording.cpp | 4 ---- .../Graph/RecordReplay/host_task_in_order.cpp | 4 ---- ...in_order_queue_with_host_managed_dependencies.cpp | 4 ---- ...r_queue_with_host_managed_dependencies_memcpy.cpp | 4 ---- ...r_queue_with_host_managed_dependencies_memset.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/lit.local.cfg | 1 + sycl/test-e2e/Graph/RecordReplay/return_values.cpp | 4 ---- .../Graph/RecordReplay/sub_graph_in_order.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/temp_buffer.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/temp_scope.cpp | 4 ---- .../Graph/RecordReplay/usm_copy_in_order.cpp | 4 ---- .../Graph/RecordReplay/usm_memset_shortcut.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/valid_no_end.cpp | 4 ---- sycl/test-e2e/Graph/Threading/lit.local.cfg | 1 + sycl/test-e2e/Graph/Threading/submit.cpp | 4 ---- .../Graph/{ => UnsupportedDevice}/device_query.cpp | 6 +----- .../exception_unsupported_backend.cpp | 2 +- sycl/test-e2e/lit.cfg.py | 6 ++++++ sycl/tools/sycl-ls/sycl-ls.cpp | 7 +++++++ 107 files changed, 26 insertions(+), 413 deletions(-) rename sycl/test-e2e/Graph/{ => Error}/empty_graph.cpp (92%) rename sycl/test-e2e/Graph/{ => Error}/finalize_twice.cpp (87%) rename sycl/test-e2e/Graph/{ => Error}/graph_exception_global_device_extension.cpp (98%) rename sycl/test-e2e/Graph/{ => Error}/invalid_depends_on.cpp (96%) rename sycl/test-e2e/Graph/{ => Error}/invalid_event_wait.cpp (89%) rename sycl/test-e2e/Graph/{ => Error}/invalid_queue_wait.cpp (86%) create mode 100644 sycl/test-e2e/Graph/Error/lit.local.cfg create mode 100644 sycl/test-e2e/Graph/Explicit/lit.local.cfg rename sycl/test-e2e/Graph/{ => RecordReplay}/event_profiling_info.cpp (99%) create mode 100644 sycl/test-e2e/Graph/RecordReplay/lit.local.cfg create mode 100644 sycl/test-e2e/Graph/Threading/lit.local.cfg rename sycl/test-e2e/Graph/{ => UnsupportedDevice}/device_query.cpp (91%) rename sycl/test-e2e/Graph/{ => UnsupportedDevice}/exception_unsupported_backend.cpp (97%) diff --git a/sycl/test-e2e/Graph/empty_graph.cpp b/sycl/test-e2e/Graph/Error/empty_graph.cpp similarity index 92% rename from sycl/test-e2e/Graph/empty_graph.cpp rename to sycl/test-e2e/Graph/Error/empty_graph.cpp index 4e869dfb03db3..a9bb45dd5953d 100644 --- a/sycl/test-e2e/Graph/empty_graph.cpp +++ b/sycl/test-e2e/Graph/Error/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/Error/finalize_twice.cpp similarity index 87% rename from sycl/test-e2e/Graph/finalize_twice.cpp rename to sycl/test-e2e/Graph/Error/finalize_twice.cpp index 1c51f13e75479..be8234d3123d9 100644 --- a/sycl/test-e2e/Graph/finalize_twice.cpp +++ b/sycl/test-e2e/Graph/Error/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/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..ad4643b247ba8 --- /dev/null +++ b/sycl/test-e2e/Graph/Error/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['graph-extension'] 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/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/lit.local.cfg b/sycl/test-e2e/Graph/Explicit/lit.local.cfg new file mode 100644 index 0000000000000..ad4643b247ba8 --- /dev/null +++ b/sycl/test-e2e/Graph/Explicit/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['graph-extension'] 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/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/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..aacc0f37efa11 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp @@ -6,10 +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; } diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp index 3a9352834a2fd..00604f29d5855 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp @@ -6,10 +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; } diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp index 710a755e08e5c..b2d0a67ffd1d3 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp @@ -6,10 +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; } diff --git a/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp index d2c7843960b49..9a82584817906 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp @@ -6,10 +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; } 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..da51f04c39d00 100644 --- a/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp +++ b/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp @@ -7,10 +7,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { diff --git a/sycl/test-e2e/Graph/Inputs/host_task.cpp b/sycl/test-e2e/Graph/Inputs/host_task.cpp index 94c24dabdfebb..96329462d5c2d 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { diff --git a/sycl/test-e2e/Graph/Inputs/host_task2.cpp b/sycl/test-e2e/Graph/Inputs/host_task2.cpp index 00aceabb9da1e..eb1699bfba084 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task2.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task2.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { 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..9376b66a909bf 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { diff --git a/sycl/test-e2e/Graph/Inputs/host_task_last.cpp b/sycl/test-e2e/Graph/Inputs/host_task_last.cpp index aafbd67081699..e5909ac9b0ec6 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_last.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_last.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { 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..07791b98bd30f 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { 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..c34823c5de0d9 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { 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..9b24a03571c60 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - if (!are_graphs_supported(Queue)) { - return 0; - } - using T = int; if (!Queue.get_device().has(sycl::aspect::usm_shared_allocations)) { 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..94206503aaf5f 100644 --- a/sycl/test-e2e/Graph/Inputs/memadvise.cpp +++ b/sycl/test-e2e/Graph/Inputs/memadvise.cpp @@ -10,10 +10,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - if (!Queue.get_device().get_info()) { return 0; } 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..7a3e60bc0111d 100644 --- a/sycl/test-e2e/Graph/Inputs/prefetch.cpp +++ b/sycl/test-e2e/Graph/Inputs/prefetch.cpp @@ -10,10 +10,6 @@ int main() { queue Queue; - if (!are_graphs_supported(Queue)) { - return 0; - } - if (!Queue.get_device().get_info()) { return 0; } 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..bac26b4092039 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp @@ -5,10 +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; } diff --git a/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp b/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp index 9ec3450070afa..cafec27bdd049 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp @@ -5,10 +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; } 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/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/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/event_profiling_info.cpp b/sycl/test-e2e/Graph/RecordReplay/event_profiling_info.cpp similarity index 99% rename from sycl/test-e2e/Graph/event_profiling_info.cpp rename to sycl/test-e2e/Graph/RecordReplay/event_profiling_info.cpp index c94117ea655ec..a0abf0e9e9961 100644 --- a/sycl/test-e2e/Graph/event_profiling_info.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/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/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/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_in_order.cpp b/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp index ecdf64fc89d11..53aeb1d50d464 100644 --- a/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp +++ b/sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp @@ -14,10 +14,6 @@ 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)) { 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..9699a69dc7cbf 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 @@ -11,10 +11,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; 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..a6a289de07d02 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 @@ -11,10 +11,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; 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..dcb9340706095 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 @@ -11,10 +11,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; 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..ad4643b247ba8 --- /dev/null +++ b/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['graph-extension'] 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_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..ad4643b247ba8 --- /dev/null +++ b/sycl/test-e2e/Graph/Threading/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['graph-extension'] 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/device_query.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp similarity index 91% rename from sycl/test-e2e/Graph/device_query.cpp rename to sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp index 3513aa74fa5b7..104bdf250d444 100644 --- a/sycl/test-e2e/Graph/device_query.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp @@ -4,15 +4,11 @@ // Tests the using device query for graphs support, and that the return value // matches expectations. -#include "graph_common.hpp" +#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 = diff --git a/sycl/test-e2e/Graph/exception_unsupported_backend.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp similarity index 97% rename from sycl/test-e2e/Graph/exception_unsupported_backend.cpp rename to sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp index 9453f35fa9b3d..d3f758c21ad2f 100644 --- a/sycl/test-e2e/Graph/exception_unsupported_backend.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp @@ -5,7 +5,7 @@ // 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. diff --git a/sycl/test-e2e/lit.cfg.py b/sycl/test-e2e/lit.cfg.py index 869dce39a5a13..29f0bc9c800d0 100644 --- a/sycl/test-e2e/lit.cfg.py +++ b/sycl/test-e2e/lit.cfg.py @@ -619,6 +619,7 @@ dev_aspects = [] dev_sg_sizes = [] + graph_support = False # See format.py's parse_min_intel_driver_req for explanation. is_intel_driver = False intel_driver_ver = {} @@ -643,6 +644,8 @@ # str.removeprefix isn't universally available... sg_sizes_str = line.strip().replace("info::device::sub_group_sizes: ", "") dev_sg_sizes.append(sg_sizes_str.strip().split(" ")) + if re.match(r" *sycl_ext_oneapi_graph", line): + graph_support = True if dev_aspects == []: lit_config.error( @@ -674,6 +677,9 @@ features.update(aspect_features) features.update(sg_size_features) + if graph_support: + features.add("graph-extension") + be, dev = sycl_device.split(":") features.add(dev.replace("fpga", "accelerator")) # Use short names for LIT rules. diff --git a/sycl/tools/sycl-ls/sycl-ls.cpp b/sycl/tools/sycl-ls/sycl-ls.cpp index 1e7e69964cd6a..db626739a8483 100644 --- a/sycl/tools/sycl-ls/sycl-ls.cpp +++ b/sycl/tools/sycl-ls/sycl-ls.cpp @@ -26,6 +26,7 @@ using namespace sycl; using namespace std::literals; +namespace exp_ext = sycl::ext::oneapi::experimental; // Controls verbose output vs. concise. bool verbose; @@ -89,6 +90,12 @@ static void printDeviceInfo(const device &Device, bool Verbose, for (auto size : sg_sizes) std::cout << " " << size; std::cout << std::endl; + + auto GraphSupport = Device.get_info(); + if (GraphSupport != exp_ext::graph_support_level::unsupported) { + std::cout << Prepend << "sycl_ext_oneapi_graph" << std::endl; + } + } else { std::cout << Prepend << ", " << DeviceName << " " << DeviceVersion << " [" << DeviceDriverVersion << "]" << std::endl; From 6e00170ea73453225110971df914efb1e2d33ff4 Mon Sep 17 00:00:00 2001 From: Ewan Crawford Date: Tue, 27 Feb 2024 15:54:31 +0000 Subject: [PATCH 2/6] Create more Graph E2E directories --- .../Graph/{RecordReplay => Profiling}/event_profiling_info.cpp | 0 sycl/test-e2e/Graph/Profiling/lit.local.cfg | 1 + sycl/test-e2e/Graph/{Error => ValidUsage}/empty_graph.cpp | 0 sycl/test-e2e/Graph/{Error => ValidUsage}/finalize_twice.cpp | 0 sycl/test-e2e/Graph/ValidUsage/lit.local.cfg | 1 + 5 files changed, 2 insertions(+) rename sycl/test-e2e/Graph/{RecordReplay => Profiling}/event_profiling_info.cpp (100%) create mode 100644 sycl/test-e2e/Graph/Profiling/lit.local.cfg rename sycl/test-e2e/Graph/{Error => ValidUsage}/empty_graph.cpp (100%) rename sycl/test-e2e/Graph/{Error => ValidUsage}/finalize_twice.cpp (100%) create mode 100644 sycl/test-e2e/Graph/ValidUsage/lit.local.cfg diff --git a/sycl/test-e2e/Graph/RecordReplay/event_profiling_info.cpp b/sycl/test-e2e/Graph/Profiling/event_profiling_info.cpp similarity index 100% rename from sycl/test-e2e/Graph/RecordReplay/event_profiling_info.cpp rename to sycl/test-e2e/Graph/Profiling/event_profiling_info.cpp 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..ad4643b247ba8 --- /dev/null +++ b/sycl/test-e2e/Graph/Profiling/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['graph-extension'] diff --git a/sycl/test-e2e/Graph/Error/empty_graph.cpp b/sycl/test-e2e/Graph/ValidUsage/empty_graph.cpp similarity index 100% rename from sycl/test-e2e/Graph/Error/empty_graph.cpp rename to sycl/test-e2e/Graph/ValidUsage/empty_graph.cpp diff --git a/sycl/test-e2e/Graph/Error/finalize_twice.cpp b/sycl/test-e2e/Graph/ValidUsage/finalize_twice.cpp similarity index 100% rename from sycl/test-e2e/Graph/Error/finalize_twice.cpp rename to sycl/test-e2e/Graph/ValidUsage/finalize_twice.cpp 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..ad4643b247ba8 --- /dev/null +++ b/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg @@ -0,0 +1 @@ +config.required_features += ['graph-extension'] From db012683b525db88fdd0136b18767bcaa8bad90e Mon Sep 17 00:00:00 2001 From: Ewan Crawford Date: Mon, 4 Mar 2024 11:31:52 +0000 Subject: [PATCH 3/6] Use REQUIRES in Graph E2E tests for USM aspects --- sycl/test-e2e/Graph/Explicit/basic_usm_host.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/basic_usm_mixed.cpp | 4 +++- sycl/test-e2e/Graph/Explicit/basic_usm_shared.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/basic_usm_system.cpp | 3 ++- .../Graph/Explicit/executable_graph_update_ordering.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task2.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task2_multiple_roots.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task_last.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task_multiple_deps.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task_multiple_roots.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/host_task_successive.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/memadvise.cpp | 2 ++ sycl/test-e2e/Graph/Explicit/prefetch.cpp | 2 ++ sycl/test-e2e/Graph/Explicit/usm_fill_host.cpp | 3 ++- sycl/test-e2e/Graph/Explicit/usm_fill_shared.cpp | 3 ++- sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp | 7 ------- sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp | 4 ---- .../Graph/Inputs/executable_graph_update_ordering.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task2.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_last.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/host_task_successive.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/memadvise.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/prefetch.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp | 4 ---- sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp | 4 ---- sycl/test-e2e/Graph/RecordReplay/basic_usm_host.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/basic_usm_mixed.cpp | 4 +++- sycl/test-e2e/Graph/RecordReplay/basic_usm_shared.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/basic_usm_system.cpp | 3 ++- .../RecordReplay/executable_graph_update_ordering.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/host_task.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/host_task2.cpp | 3 ++- .../Graph/RecordReplay/host_task2_multiple_roots.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/host_task_in_order.cpp | 7 ++----- sycl/test-e2e/Graph/RecordReplay/host_task_last.cpp | 3 ++- .../Graph/RecordReplay/host_task_multiple_deps.cpp | 3 ++- .../Graph/RecordReplay/host_task_multiple_roots.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/host_task_successive.cpp | 3 ++- .../in_order_queue_with_host_managed_dependencies.cpp | 6 ++---- ...n_order_queue_with_host_managed_dependencies_memcpy.cpp | 6 ++---- ...n_order_queue_with_host_managed_dependencies_memset.cpp | 6 ++---- sycl/test-e2e/Graph/RecordReplay/memadvise.cpp | 2 ++ sycl/test-e2e/Graph/RecordReplay/prefetch.cpp | 2 ++ sycl/test-e2e/Graph/RecordReplay/usm_fill_host.cpp | 3 ++- sycl/test-e2e/Graph/RecordReplay/usm_fill_shared.cpp | 3 ++- 52 files changed, 74 insertions(+), 112 deletions(-) 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/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/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/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/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/basic_usm_host.cpp b/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp index aacc0f37efa11..a7eb0aa3158c0 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_host.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - 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 00604f29d5855..90b85c986db2b 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_mixed.cpp @@ -6,13 +6,6 @@ int main() { queue Queue{}; - 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 b2d0a67ffd1d3..ca3dba3813f25 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_shared.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - 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 9a82584817906..a0e48d29fc3fe 100644 --- a/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp +++ b/sycl/test-e2e/Graph/Inputs/basic_usm_system.cpp @@ -6,10 +6,6 @@ int main() { queue Queue{}; - 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/executable_graph_update_ordering.cpp b/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp index da51f04c39d00..c38cf6d4f5e3c 100644 --- a/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp +++ b/sycl/test-e2e/Graph/Inputs/executable_graph_update_ordering.cpp @@ -9,10 +9,6 @@ int main() { 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 96329462d5c2d..8ec19d770dbcb 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task.cpp @@ -7,10 +7,6 @@ int main() { 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 eb1699bfba084..6fddddf489b32 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task2.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task2.cpp @@ -7,10 +7,6 @@ int main() { 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 9376b66a909bf..c4d03e3be9e4b 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task2_multiple_roots.cpp @@ -8,10 +8,6 @@ int main() { 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 e5909ac9b0ec6..07cc7f1dc61ae 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_last.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_last.cpp @@ -7,10 +7,6 @@ int main() { 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 07791b98bd30f..efe0846450539 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_multiple_deps.cpp @@ -8,10 +8,6 @@ int main() { 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 c34823c5de0d9..62dc577106e37 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_multiple_roots.cpp @@ -8,10 +8,6 @@ int main() { 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_successive.cpp b/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp index 9b24a03571c60..1312ea1074da9 100644 --- a/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp +++ b/sycl/test-e2e/Graph/Inputs/host_task_successive.cpp @@ -7,10 +7,6 @@ int main() { 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/memadvise.cpp b/sycl/test-e2e/Graph/Inputs/memadvise.cpp index 94206503aaf5f..45a5f74d95060 100644 --- a/sycl/test-e2e/Graph/Inputs/memadvise.cpp +++ b/sycl/test-e2e/Graph/Inputs/memadvise.cpp @@ -10,10 +10,6 @@ int main() { queue Queue; - 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/prefetch.cpp b/sycl/test-e2e/Graph/Inputs/prefetch.cpp index 7a3e60bc0111d..9e459189e6288 100644 --- a/sycl/test-e2e/Graph/Inputs/prefetch.cpp +++ b/sycl/test-e2e/Graph/Inputs/prefetch.cpp @@ -10,10 +10,6 @@ int main() { queue Queue; - 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/usm_fill_host.cpp b/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp index bac26b4092039..5729abf20d4d4 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill_host.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - 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 cafec27bdd049..a8eb04ab04204 100644 --- a/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp +++ b/sycl/test-e2e/Graph/Inputs/usm_fill_shared.cpp @@ -5,10 +5,6 @@ int main() { queue Queue{}; - 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/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/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/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 53aeb1d50d464..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. @@ -16,10 +17,6 @@ int main() { 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 9699a69dc7cbf..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,10 +13,6 @@ int main() { queue Queue{sycl::property::queue::in_order{}}; - // 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 a6a289de07d02..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,10 +13,6 @@ int main() { queue Queue{sycl::property::queue::in_order{}}; - // 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 dcb9340706095..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,10 +13,6 @@ int main() { queue Queue{sycl::property::queue::in_order{}}; - // 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/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/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 From 49968e8dcdfc04f0c73e0af4dc9afa2fc93ea6d3 Mon Sep 17 00:00:00 2001 From: Ewan Crawford Date: Mon, 4 Mar 2024 15:03:04 +0000 Subject: [PATCH 4/6] Change device info query to aspect Based on DPC++ maintainer feedback that an aspect is more useful for sycl-ls and lit testing. Our emulation mode has also never been implemented. --- .../llvm/SYCLLowerIR/DeviceConfigFile.td | 3 +- .../sycl_ext_oneapi_graph.asciidoc | 35 +++++-------------- sycl/include/sycl/device_aspect_macros.hpp | 10 ++++++ sycl/include/sycl/info/aspects.def | 1 + .../sycl/info/ext_oneapi_device_traits.def | 5 --- sycl/include/sycl/info/info_desc.hpp | 9 ++--- sycl/source/detail/device_impl.cpp | 25 +++++++++++++ sycl/source/detail/device_info.hpp | 35 ------------------- sycl/source/detail/graph_impl.cpp | 22 ++---------- sycl/source/detail/graph_impl.hpp | 4 +-- sycl/test-e2e/Graph/Error/lit.local.cfg | 2 +- sycl/test-e2e/Graph/Explicit/lit.local.cfg | 2 +- sycl/test-e2e/Graph/Profiling/lit.local.cfg | 2 +- .../exception_inconsistent_devices.cpp | 8 ++--- .../test-e2e/Graph/RecordReplay/lit.local.cfg | 2 +- sycl/test-e2e/Graph/Threading/lit.local.cfg | 2 +- .../Graph/UnsupportedDevice/device_query.cpp | 15 +++----- .../exception_unsupported_backend.cpp | 7 ++-- sycl/test-e2e/Graph/ValidUsage/lit.local.cfg | 2 +- sycl/test-e2e/Graph/graph_common.hpp | 9 ----- .../in_order_ext_oneapi_submit_barrier.cpp | 3 +- sycl/test-e2e/lit.cfg.py | 6 ---- sycl/test/abi/sycl_symbols_linux.dump | 2 -- sycl/test/abi/sycl_symbols_windows.dump | 2 -- sycl/tools/sycl-ls/sycl-ls.cpp | 7 ---- 25 files changed, 71 insertions(+), 149 deletions(-) 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..f498e9276642f 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,38 +297,20 @@ 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 extension using an + underlying SYCL backend command-buffer construct to propagate the graph to + the backend. |=== 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 bdfc90537b520..15b1a18ddd0c9 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 { @@ -1280,21 +1276,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 eafb66b1dca9b..27f9c742c6d82 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/Error/lit.local.cfg b/sycl/test-e2e/Graph/Error/lit.local.cfg index ad4643b247ba8..9c0c4cc846295 100644 --- a/sycl/test-e2e/Graph/Error/lit.local.cfg +++ b/sycl/test-e2e/Graph/Error/lit.local.cfg @@ -1 +1 @@ -config.required_features += ['graph-extension'] +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/Explicit/lit.local.cfg b/sycl/test-e2e/Graph/Explicit/lit.local.cfg index ad4643b247ba8..9c0c4cc846295 100644 --- a/sycl/test-e2e/Graph/Explicit/lit.local.cfg +++ b/sycl/test-e2e/Graph/Explicit/lit.local.cfg @@ -1 +1 @@ -config.required_features += ['graph-extension'] +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/Profiling/lit.local.cfg b/sycl/test-e2e/Graph/Profiling/lit.local.cfg index ad4643b247ba8..9c0c4cc846295 100644 --- a/sycl/test-e2e/Graph/Profiling/lit.local.cfg +++ b/sycl/test-e2e/Graph/Profiling/lit.local.cfg @@ -1 +1 @@ -config.required_features += ['graph-extension'] +config.required_features += ['aspect-ext_oneapi_graph'] 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/lit.local.cfg b/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg index ad4643b247ba8..9c0c4cc846295 100644 --- a/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg +++ b/sycl/test-e2e/Graph/RecordReplay/lit.local.cfg @@ -1 +1 @@ -config.required_features += ['graph-extension'] +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/Threading/lit.local.cfg b/sycl/test-e2e/Graph/Threading/lit.local.cfg index ad4643b247ba8..9c0c4cc846295 100644 --- a/sycl/test-e2e/Graph/Threading/lit.local.cfg +++ b/sycl/test-e2e/Graph/Threading/lit.local.cfg @@ -1 +1 @@ -config.required_features += ['graph-extension'] +config.required_features += ['aspect-ext_oneapi_graph'] diff --git a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp index 104bdf250d444..21c3baf32b413 100644 --- a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp @@ -10,21 +10,16 @@ int main() { queue Queue; auto Device = Queue.get_device(); - - exp_ext::graph_support_level SupportsGraphs = - Device.get_info(); + 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 == exp_ext::graph_support_level::native); - } else if (Backend == backend::opencl) { + assert(SupportsGraphs); + } 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); + // extension being available. + assert(!SupportsGraphs); } } diff --git a/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp index d3f758c21ad2f..b8f62ade21b84 100644 --- a/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/exception_unsupported_backend.cpp @@ -10,17 +10,14 @@ 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/ValidUsage/lit.local.cfg b/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg index ad4643b247ba8..9c0c4cc846295 100644 --- a/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg +++ b/sycl/test-e2e/Graph/ValidUsage/lit.local.cfg @@ -1 +1 @@ -config.required_features += ['graph-extension'] +config.required_features += ['aspect-ext_oneapi_graph'] 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-e2e/lit.cfg.py b/sycl/test-e2e/lit.cfg.py index 29f0bc9c800d0..869dce39a5a13 100644 --- a/sycl/test-e2e/lit.cfg.py +++ b/sycl/test-e2e/lit.cfg.py @@ -619,7 +619,6 @@ dev_aspects = [] dev_sg_sizes = [] - graph_support = False # See format.py's parse_min_intel_driver_req for explanation. is_intel_driver = False intel_driver_ver = {} @@ -644,8 +643,6 @@ # str.removeprefix isn't universally available... sg_sizes_str = line.strip().replace("info::device::sub_group_sizes: ", "") dev_sg_sizes.append(sg_sizes_str.strip().split(" ")) - if re.match(r" *sycl_ext_oneapi_graph", line): - graph_support = True if dev_aspects == []: lit_config.error( @@ -677,9 +674,6 @@ features.update(aspect_features) features.update(sg_size_features) - if graph_support: - features.add("graph-extension") - be, dev = sycl_device.split(":") features.add(dev.replace("fpga", "accelerator")) # Use short names for LIT rules. 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 diff --git a/sycl/tools/sycl-ls/sycl-ls.cpp b/sycl/tools/sycl-ls/sycl-ls.cpp index db626739a8483..1e7e69964cd6a 100644 --- a/sycl/tools/sycl-ls/sycl-ls.cpp +++ b/sycl/tools/sycl-ls/sycl-ls.cpp @@ -26,7 +26,6 @@ using namespace sycl; using namespace std::literals; -namespace exp_ext = sycl::ext::oneapi::experimental; // Controls verbose output vs. concise. bool verbose; @@ -90,12 +89,6 @@ static void printDeviceInfo(const device &Device, bool Verbose, for (auto size : sg_sizes) std::cout << " " << size; std::cout << std::endl; - - auto GraphSupport = Device.get_info(); - if (GraphSupport != exp_ext::graph_support_level::unsupported) { - std::cout << Prepend << "sycl_ext_oneapi_graph" << std::endl; - } - } else { std::cout << Prepend << ", " << DeviceName << " " << DeviceVersion << " [" << DeviceDriverVersion << "]" << std::endl; From db1d01b9213f0d0ddd87f7004c065a3911f75ce2 Mon Sep 17 00:00:00 2001 From: Ewan Crawford Date: Wed, 6 Mar 2024 08:44:56 +0000 Subject: [PATCH 5/6] Refine aspect description Also check for OpenCL backend support for `cl_khr_command_buffer` when determining if SYCL-Graphs support should be reported. --- .../experimental/sycl_ext_oneapi_graph.asciidoc | 5 ++--- .../test-e2e/Graph/UnsupportedDevice/device_query.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc b/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc index f498e9276642f..637a8adc8c8f4 100644 --- a/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc +++ b/sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc @@ -308,9 +308,8 @@ Table {counter: tableNumber}. Device Support Aspect. | Device Descriptor | Description |`aspect::ext_oneapi_graph` -| Indicates that the device supports the extension using an - underlying SYCL backend command-buffer construct to propagate the graph to - the backend. +| Indicates that the device supports the APIs described in this extension. + |=== diff --git a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp index 21c3baf32b413..4e8949e20e688 100644 --- a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp @@ -17,9 +17,16 @@ int main() { (Backend == backend::ext_oneapi_cuda) || (Backend == backend::ext_oneapi_hip)) { assert(SupportsGraphs); - } else if (Backend != backend::opencl) { + } else if (Backend == backend::opencl) { // OpenCL backend support is conditional on the cl_khr_command_buffer - // extension being available. + // extension being available + bool ExtSupport = Device.has_extension("cl_khr_command_buffer"); + if (ExtSupport) { + assert(SupportsGraphs); + } else { + assert(!SupportsGraphs); + } + } else { assert(!SupportsGraphs); } } From 59c5600cf2004149a6c44d82bef625ed414cb8af Mon Sep 17 00:00:00 2001 From: Ewan Crawford Date: Wed, 6 Mar 2024 11:51:39 +0000 Subject: [PATCH 6/6] Skip device query test on OpenCL --- .../Graph/UnsupportedDevice/device_query.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp index 4e8949e20e688..11e98262bf390 100644 --- a/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp +++ b/sycl/test-e2e/Graph/UnsupportedDevice/device_query.cpp @@ -1,6 +1,9 @@ // 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. @@ -17,15 +20,6 @@ int main() { (Backend == backend::ext_oneapi_cuda) || (Backend == backend::ext_oneapi_hip)) { assert(SupportsGraphs); - } else if (Backend == backend::opencl) { - // OpenCL backend support is conditional on the cl_khr_command_buffer - // extension being available - bool ExtSupport = Device.has_extension("cl_khr_command_buffer"); - if (ExtSupport) { - assert(SupportsGraphs); - } else { - assert(!SupportsGraphs); - } } else { assert(!SupportsGraphs); }