You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This patch contains the initial implementation of post-enqueue cleanup of
command nodes. This is primarily motivated by significant overhead of post-wait
cleanup in queue::wait when lowered to piQueueFinish, which is due to the fact
that we cannot alternate between waiting for singular events and cleaning up
their commands while other tasks are still executing on device.
Post-enqueue cleanup is performed for enqueued non-leaf nodes, so it can be
triggered by the enqueue process or by removing an enqueued node from leaves.
There are multiple exceptions in the initial implementation: host tasks
(currently cannot be cleaned up after enqueue), kernels with streams (stream
handling is tied to finished command cleanup) and CGs without dependencies
(deleted in addCG like before for now). Because of this, finished command
cleanup is still triggered in event::wait() unconditionally and in
queue::wait() for host tasks and kernels with streams.
In addition, this patch removes queue::wait workarounds for Level Zero that
were required to bypass finished command cleanup overhead.
Copy file name to clipboardExpand all lines: sycl/doc/EnvironmentVariables.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -92,6 +92,7 @@ variables in production code.</span>
92
92
|`SYCL_DEVICELIB_NO_FALLBACK`| Any(\*) | Disable loading and linking of device library images |
93
93
|`SYCL_PRINT_EXECUTION_GRAPH`| Described [below](#sycl_print_execution_graph-options)| Print execution graph to DOT text file. |
94
94
|`SYCL_DISABLE_EXECUTION_GRAPH_CLEANUP`| Any(\*) | Disable cleanup of finished command nodes at host-device synchronization points. |
95
+
|`SYCL_DISABLE_POST_ENQUEUE_CLEANUP`| Any(\*) | Disable cleanup of enqueued command nodes during submission. |
95
96
|`SYCL_THROW_ON_BLOCK`| Any(\*) | Throw an exception on attempt to wait for a blocked command. |
96
97
|`SYCL_DEVICELIB_INHIBIT_NATIVE`| String of device library extensions (separated by a whitespace) | Do not rely on device native support for devicelib extensions listed in this option. |
97
98
|`SYCL_PROGRAM_COMPILE_OPTIONS`| String of valid OpenCL compile options | Override compile options for all programs. |
0 commit comments