-
Notifications
You must be signed in to change notification settings - Fork 116
Open
Description
Currently __get_sycl_range with a write access mode and a host_iterator input does not include a "copy-in" for data. The copy-in is skipped, as the sycl::buffer is not initialized with the host_iterator's data, only its number of elements.
This currently is not aligned with the SYCL runtime, where write implies a "copy-in" unless a no_init{} property is added to the accessor creation. We should add a no_init{} property or parameter to __get_sycl_range so that we can be in line with the SYCL runtime.
We should examine all current write and read_write access mode calls to __get_sycl_range, and determine where a copy in is required and where it is not, and use the new feature accordingly.
From #276:
// TODO: add optional template parameter: no_init to match sycl property::no_init. This can be used to allow accessors
// in `write` or `read_write` mode to not copy in data prior to a kernel where it is not required. This will also allow
// us to align with the SYCL spec on how we treat host_iterators. We currently only copy in when `read` or `read_write`
// access mode is specified, not for `write`. If we add a `no_init` property, we can explicitly use it where
// it applies, and operate under the same rules as SYCL with copying host_iterators.
Metadata
Metadata
Assignees
Labels
No labels