Skip to content

[SYCL][Graph] Update spec for native recording mode#21616

Merged
againull merged 6 commits intointel:syclfrom
adamfidel:adam/native-recording-spec
Apr 3, 2026
Merged

[SYCL][Graph] Update spec for native recording mode#21616
againull merged 6 commits intointel:syclfrom
adamfidel:adam/native-recording-spec

Conversation

@adamfidel
Copy link
Copy Markdown
Member

This PR updates the SYCL graph specification to document the property::graph::enable_native_recording. In native recording mode, graph capture is delegated to the backend, rather than managed at the SYCL level using Unified Runtime's Command-Buffer feature.

@adamfidel adamfidel requested a review from a team as a code owner March 24, 2026 19:19
@adamfidel adamfidel requested a review from mmichel11 March 24, 2026 19:19
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
adamfidel and others added 3 commits March 25, 2026 14:39
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc Outdated
Comment thread sycl/doc/extensions/experimental/sycl_ext_oneapi_graph.asciidoc
Copy link
Copy Markdown
Contributor

@mmichel11 mmichel11 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

@intel/llvm-gatekeepers please consider merging

@againull againull merged commit 8a84585 into intel:sycl Apr 3, 2026
3 checks passed
KornevNikita pushed a commit that referenced this pull request Apr 15, 2026
Native recording enables SYCL Graph to directly leverage the new Unified
Runtime graph API (and thus the native backend graph API, e.g. level
zero graph) during record-and-replay, rather than going through Unified
Runtime’s `Command-Buffer` abstraction. When native recording is
enabled, all commands, whether submitted via SYCL or directly via a
backend such as level zero, are captured by the backend and finalized
into an executable native graph.

It is enabled with a new `enable_native_recording` property being passed
to the property list.

```c++

exp_ext::command_graph graph{
    queue.get_context(), queue.get_device(),
    {exp_ext::property::graph::enable_native_recording{}}};
```

There are some functional limitations of the native mode, which are
outlined in the changes to the SYCL Graph spec in PR
#21616.

Related PRs:
- Update to the SYCL Graph spec:
#21616
- Small changes to add `empty()` to the graph:
#21554

---------

Signed-off-by: Matthew Michel <matthew.michel@intel.com>
Co-authored-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
Co-authored-by: Krzysztof Swiecicki <krzysztof.swiecicki@intel.com>
Co-authored-by: Pablo Reble <pablo.reble@intel.com>
Co-authored-by: Matthew Michel <matthew.michel@intel.com>
Co-authored-by: Wang, Zhiming <zhiming.wang@intel.com>
Co-authored-by: Łukasz Ślusarczyk <lukasz.slusarczyk@intel.com>
github-actions bot pushed a commit to oneapi-src/unified-runtime that referenced this pull request Apr 16, 2026
Native recording enables SYCL Graph to directly leverage the new Unified
Runtime graph API (and thus the native backend graph API, e.g. level
zero graph) during record-and-replay, rather than going through Unified
Runtime’s `Command-Buffer` abstraction. When native recording is
enabled, all commands, whether submitted via SYCL or directly via a
backend such as level zero, are captured by the backend and finalized
into an executable native graph.

It is enabled with a new `enable_native_recording` property being passed
to the property list.

```c++

exp_ext::command_graph graph{
    queue.get_context(), queue.get_device(),
    {exp_ext::property::graph::enable_native_recording{}}};
```

There are some functional limitations of the native mode, which are
outlined in the changes to the SYCL Graph spec in PR
intel/llvm#21616.

Related PRs:
- Update to the SYCL Graph spec:
intel/llvm#21616
- Small changes to add `empty()` to the graph:
intel/llvm#21554

---------

Signed-off-by: Matthew Michel <matthew.michel@intel.com>
Co-authored-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
Co-authored-by: Krzysztof Swiecicki <krzysztof.swiecicki@intel.com>
Co-authored-by: Pablo Reble <pablo.reble@intel.com>
Co-authored-by: Matthew Michel <matthew.michel@intel.com>
Co-authored-by: Wang, Zhiming <zhiming.wang@intel.com>
Co-authored-by: Łukasz Ślusarczyk <lukasz.slusarczyk@intel.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants