Skip to content

Commit 7ac3f12

Browse files
Victor LomullerNaghasan
authored andcommitted
Address new feedbacks
1 parent d489c62 commit 7ac3f12

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

interop_task/interop_task.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
|-------------|--------|
33
| Name | |
44
| Date of Creation | 16 January 2019 |
5-
| Target | SYCL 1.2.1 extension |
5+
| Target | Vendor extension |
66
| Current Status | _Work in progress_ |
77
| Reply-to | Victor Lomüller <victor@codeplay.com> |
88
| Original author | Victor Lomüller <victor@codeplay.com>, Gordon Brown <gordon@codeplay.com>, Peter Zuzek <peter@codeplay.com> |
@@ -12,9 +12,9 @@
1212

1313
## Motivation
1414

15-
SYCL does not allow a user to access cl_mem object out of an cl::sycl::accessor, it difficult/impossible to integrate OpenCL library to use them as is inside the data-flow execution model of SYCL, as the only current way to do this is to create all OpenCL buffers up-front, which is not always possible.
15+
SYCL does not allow a user to access cl_mem object out of an cl::sycl::accessor, it is difficult to integrate low-level API functionality inside the data-flow execution model of SYCL, as the only current way to do this is to create all OpenCL buffers up-front, which is not always possible.
1616

17-
This proposal introduces a way for a user to retrieve the OpenCL buffer associate with a SYCL buffer and enqueue a host task that can execute an arbitrary portion of host code within the SYCL runtime, therefore taking advantage of SYCL dependency analysis and scheduling.
17+
This proposal introduces a way for a user to retrieve the low-level objects associated with SYCL buffers and enqueue a host task that can execute an arbitrary portion of host code within the SYCL runtime, therefore taking advantage of SYCL dependency analysis and scheduling.
1818

1919
## Accessing low-level API functionality on SYCL queues
2020

@@ -66,6 +66,10 @@ The functor passed to the `interop_task` takes as input a const reference to a `
6666
It is not allowed to allocate new SYCL object inside an `interop_task`.
6767
It is the user responsibilities to ensure all operations peroformed inside the `interop_task` finished before returning from it.
6868
69+
Although the statements inside the lambda submitted to the `interop_task` are executed on the host, the requirements and actions for the command group are satisied for the device.
70+
This is the opposite of the `host_handler` vendor extension, where requisites are satisfied for the host since the statements on the lambda submited to the single task are meant to have side effects on the host only.
71+
The interop task lambda can have side effects on the host, but it is the programmer responsability to ensure requirements dont need to be satisfied for the host.
72+
6973
## Accessing low-level API objects
7074
7175
We introduce the `interop_handle` class which provide access to underlying OpenCL objects during the execution of the `interop_task`.

0 commit comments

Comments
 (0)