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
[SYCL][OpenCL] Enable graph extension on OpenCL backend (#11718)
intel-llvm CI run for adding Command Buffers to the OpenCL Adapter in
Unified Runtime - oneapi-src/unified-runtime#966
Also completes follow-on work identified in #11599 to add an OpenCL
section to the SYCL-Graphs docs and update the e2e Graph tests. Updating
the tests has since been completed in a separate PR -
#11877
Depends on #11820 merging first.
---------
Co-authored-by: Pablo Reble <[email protected]>
Co-authored-by: Ewan Crawford <[email protected]>
Co-authored-by: Kenneth Benzie (Benie) <[email protected]>
We are looking to address these gaps in the future so that SYCL-Graph can be
321
+
fully supported on a `cl_khr_command_buffer` backend.
322
+
323
+
#### UR Command-Buffer Implementation
324
+
325
+
Many of the OpenCL functions take a `cl_command_queue` parameter which is not
326
+
present in most of the UR functions. Instead, when a new command buffer is
327
+
created in `urCommandBufferCreateExp` we also create and maintain a new
328
+
internal `ur_queue_handle_t` with a reference stored inside of the
329
+
`ur_exp_command_buffer_handle_t_` struct. The internal queue is retained and
330
+
released whenever the owning command buffer is retained or released.
331
+
332
+
With command buffers being an OpenCL extension, each function is accessed by
333
+
loading a function pointer to its implementation. These are defined in a common
334
+
header file in the UR OpenCL adapter. The symbols for the functions are however
335
+
defined in [OpenCL-Headers](https://github.com/KhronosGroup/OpenCL-Headers/blob/main/CL/cl_ext.h)
336
+
but it is not known at this time what version of the headers will be used in
337
+
the UR GitHub CI configuration, so loading the function pointers will be used
338
+
until this can be verified. A future piece of work would be replacing the
339
+
custom defined symbols with the ones from OpenCL-Headers.
340
+
341
+
#### Available OpenCL Command-Buffer Implementations
342
+
343
+
Publicly available implementations of `cl_khr_command_buffer` that can be used
344
+
to enable the graph extension in OpenCL:
345
+
346
+
-[OneAPI Construction Kit](https://github.com/codeplaysoftware/oneapi-construction-kit) (must enable `OCL_EXTENSION_cl_khr_command_buffer` when building)
0 commit comments