Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
4f3b7d0
[UR][L0v2] Add initial record & replay implementation
KFilipek Dec 2, 2025
f551ead
[UR] Fix record & replay tests
kswiecicki Dec 8, 2025
c9d5fdf
Remove trailing comma from known failures
kswiecicki Dec 10, 2025
6ef32b6
Copy and use compute-runtime experimental headers
kswiecicki Dec 10, 2025
1d30f09
Fix exp_graph fixtures teardown
kswiecicki Dec 10, 2025
2a1b783
Adding new graph property for native recording
Oct 23, 2025
5563793
Initial draft
Nov 5, 2025
91e445c
Add gettter and setter functions
Nov 6, 2025
7880362
Minor changes
Nov 6, 2025
decf1ff
move function implementation
Nov 6, 2025
cfb55b5
fix wrong func name
Nov 6, 2025
566a1d8
formatting and fix issue
Nov 10, 2025
16ec4f6
adding tests
Nov 10, 2025
22f73d7
align UR calls
Nov 20, 2025
db26462
Update UR API usage
Dec 12, 2025
88e3251
cleanup and sanity checks
Dec 17, 2025
8dcc6d9
Add non immediate flag to cb event provider for graph compatibility (…
mmichel11 Jan 10, 2026
7d040ea
cleanup
Jan 16, 2026
f11adc6
Replace property by env variable for transparent use.
Jan 16, 2026
6aa67af
rename tests
Jan 16, 2026
2ed6275
formatting
Jan 16, 2026
76ceb9e
Update property_helper.hpp
Jan 16, 2026
fe62921
revert changes
Jan 16, 2026
e2947c8
Apply suggestions from code review
Jan 21, 2026
334ece5
Apply suggestions from code review
Jan 22, 2026
e14f630
Adding utility function to avoid code duplication
Jan 22, 2026
0681042
formatting
Jan 22, 2026
693d300
Improve Error checking in constructor
Jan 23, 2026
6b5db25
Apply suggestions from code review
Jan 23, 2026
8e68a52
Apply suggestions from code review
Jan 23, 2026
ba5ef6a
Add native recording multi-queue test (#394)
mmichel11 Jan 26, 2026
16b9f6c
Apply suggestions from code review
Jan 26, 2026
44406d6
Apply suggestion from @reble
Jan 26, 2026
6ffe54b
Reduce verbosity of test
Jan 26, 2026
4fdd6e3
Remove restrictions on immediate command list property (#396)
Jan 27, 2026
c982ff9
Expand test coverage for non kernel native recording tests (#397)
mmichel11 Jan 27, 2026
70f3fd0
Support `queue::ext_oneapi_get_state()` with native recording (#1)
mmichel11 Feb 11, 2026
eaa880d
Move native recording tests into new directory (#2)
mmichel11 Feb 12, 2026
0530ee8
Call UR APIs through adapter for all cases in native recording path (#6)
mmichel11 Feb 13, 2026
d1fceda
Add test for non-blocking submission pipeline with native recording (#8)
mmichel11 Feb 17, 2026
6a14ef4
Add basic native recording level-zero interop tests (#7)
mmichel11 Feb 17, 2026
ace0cca
Remove command buffer creation in native recording (#9)
mmichel11 Feb 20, 2026
97e8492
Remove native recording barrier_multi_queue.cpp test (#10)
mmichel11 Feb 24, 2026
270a3a8
Fix boolean condition for SYCL_GRAPH_ENABLE_NATIVE_RECORDING (#12)
mmichel11 Feb 24, 2026
4e18a5c
Add work-group scratch memory test for native recording (#13)
mmichel11 Feb 25, 2026
74e86b9
add empty method on graph (#3)
lslusarczyk Feb 26, 2026
b931bc8
Add new multi-queue barrier test for native recording (#15)
mmichel11 Mar 3, 2026
a7b033c
Add pointer indirection mutable argument test (#14)
mmichel11 Mar 4, 2026
5570978
Improve native recording queue capturing checks (#17)
mmichel11 Mar 6, 2026
7718dc4
Throw exceptions for unsupported features where possible (#16)
adamfidel Mar 16, 2026
dacc578
MEnableNativeRecording -> MNativeGraphHandle
adamfidel Mar 16, 2026
1524fba
Add native recording print graph functionality (#18)
mmichel11 Mar 17, 2026
cecb820
Small wording change
adamfidel Mar 17, 2026
0bd1b89
Add test for modifiable command graph empty() function (#19)
mmichel11 Mar 17, 2026
79efbd4
Replace native recording environment variable with property (#20)
adamfidel Mar 24, 2026
6cc23c2
Address review comments
adamfidel Mar 24, 2026
ea9a61c
Add asserts for graph update
adamfidel Mar 24, 2026
53bf9ad
Formatting changes
adamfidel Mar 24, 2026
ce9c3fd
Fix incorrect usage of FileCheck in NativeRecording/debug_print_graph…
mmichel11 Mar 24, 2026
d10ffc1
Add level_zero_dev_kit to failing tests
adamfidel Mar 25, 2026
23784d7
try fixing l0 test issue
mmichel11 Mar 25, 2026
6f380b9
Address reviewer feedback
adamfidel Mar 31, 2026
a768b24
Align implementation with spec
adamfidel Apr 1, 2026
a0c82c9
Remove dead code
adamfidel Apr 1, 2026
c9d85f6
Bump spec macro number and update expectException to take the expecte…
adamfidel Apr 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion sycl/include/sycl/detail/property_helper.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,9 @@ enum DataLessPropKind {
GraphDependOnAllLeaves = 19,
GraphUpdatable = 20,
GraphEnableProfiling = 21,
GraphEnableNativeRecording = 22,
// Indicates the last known dataless property.
LastKnownDataLessPropKind = 21,
LastKnownDataLessPropKind = 22,
// Exceeding 32 may cause ABI breaking change on some of OSes.
DataLessPropKindSize = 32
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,9 @@ __SYCL_DATA_LESS_PROP(property::graph, updatable, GraphUpdatable)
/// events returned by submissions of the executable graph
__SYCL_DATA_LESS_PROP(property::graph, enable_profiling, GraphEnableProfiling)

/// Property passed to command_graph constructor to enable native recording
/// capability for improved performance when supported by the backend.
__SYCL_DATA_LESS_PROP(property::graph, enable_native_recording, GraphEnableNativeRecording)

#undef __SYCL_DATA_LESS_PROP
#undef __SYCL_MANUALLY_DEFINED_PROP
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ class __SYCL_EXPORT modifiable_command_graph
/// Get a list of all root nodes (nodes without dependencies) in this graph.
std::vector<node> get_root_nodes() const;

/// Query whether the graph contains no nodes.
/// Returns true if the graph contains no nodes.
bool empty() const;

/// Common Reference Semantics
Expand Down
24 changes: 24 additions & 0 deletions sycl/source/detail/async_alloc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,14 @@ void *async_malloc(sycl::handler &h, sycl::usm::alloc kind, size_t size) {
sycl::make_error_code(sycl::errc::feature_not_supported),
"Only device backed asynchronous allocations are supported!");

// Allocations not supported in graph native recording mode
if (auto *Queue = h.impl->get_queue_or_null();
Queue && Queue->isNativeRecording()) {
throw sycl::exception(
sycl::make_error_code(sycl::errc::invalid),
"async_malloc is not supported in native recording mode.");
}

detail::adapter_impl &Adapter = h.getContextImpl().getAdapter();

// Get CG event dependencies for this allocation.
Expand Down Expand Up @@ -117,6 +125,14 @@ __SYCL_EXPORT void *async_malloc(const sycl::queue &q, sycl::usm::alloc kind,
__SYCL_EXPORT void *async_malloc_from_pool(sycl::handler &h, size_t size,
const memory_pool &pool) {

// Allocations not supported in graph native recording mode
if (auto *Queue = h.impl->get_queue_or_null();
Queue && Queue->isNativeRecording()) {
throw sycl::exception(
sycl::make_error_code(sycl::errc::invalid),
"async_malloc is not supported in native recording mode.");
}

detail::adapter_impl &Adapter = h.getContextImpl().getAdapter();
detail::memory_pool_impl &memPoolImpl = *detail::getSyclObjImpl(pool);

Expand Down Expand Up @@ -181,6 +197,14 @@ __SYCL_EXPORT void async_free(sycl::handler &h, void *ptr) {
}
}

// Not supported in graph native recording mode
if (auto *Queue = h.impl->get_queue_or_null();
Queue && Queue->isNativeRecording()) {
throw sycl::exception(
sycl::make_error_code(sycl::errc::invalid),
"async_free is not supported in native recording mode.");
}

h.impl->MFreePtr = ptr;
h.setType(detail::CGType::AsyncFree);
}
Expand Down
Loading
Loading