-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add buffer read/write commands to command-buffer extension #1281
Comments
+1. Notifying @franz . |
Confirming: this feature would support reading into and writing from arbitrary host pointers, correct? The pointers would not need to be SVM or USM pointers? I agree this is useful, but it also brings a surprising amount of complexity. For example, when is the host allowed to read from or write to the host pointers? When is the host allowed to free memory? Are there any requirements (e.g. alignment) for the host pointers? If we relax this behavior then we should also consider relaxing the restriction on One more question: Are these copy nodes required for SYCL-Graph? If so, this support would be required to support SYCL-Graph, even if it's optional in |
Yes indeed! I should have made that more explicit.
Good points, I'll need to considered these questions.
It is definitely worth considering this, for SYCL
Currently they are currently required. The SYCL-Graph implementation will throw an error if you try to use them however on an OpenCL backend. However this isn't formally documented in the spec, but as a implementation limitation https://github.com/intel/llvm/blob/sycl/sycl/doc/design/CommandGraph.md#limitations |
The SYCL-Graph vendor extension in SYCL is layered on top of the cl_khr_command_buffer OpenCL extension. It currently cannot support the following graph nodes on OpenCL backends as there is no
clCommandReadBuffer
/clCommandWriteBuffer
commands defined bycl_khr_command_buffer
.handler::copy(src, dest)
- Where src is an accessor and dest is a pointer. This corresponds to a memory buffer read command.handler::copy(src, dest)
- Where src is an pointer and dest is an accessor. This corresponds to a memory buffer write command.This is a feature request to add command append entry-points to
cl_khr_command_buffer
to support this, which could be optional to support if desired. PoCL vendor extension cl_pocl_command_buffer_host_buffer already exists to support this, so cc @pjaaskelThe text was updated successfully, but these errors were encountered: