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