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
Right after the creation of a kernel, piKernelSetExecInfo is unconditionally called to set PI_USM_INDIRECT_ACCESS. However not all kernels require this as they may purely use accessor, making this call unnecessary.
For an underlying runtime supporting USM this has no (or shouldn't have) implication. But if the runtime does not support it, this artificially raises the bar as it now has to support an unnecessary extension.
The text was updated successfully, but these errors were encountered:
For an underlying runtime supporting USM this has no (or shouldn't have) implication.
I'm not sure if that is the case for at least OpenCL, for example: cl_intel_unified_shared_memory. If I understand correctly, it does not guarantees that a USM pointer passed within a struct (and not directly as a kernel argument through clSetKernelArgMemPointerINTEL is accessible unless corresponding exec mode is set.
But if the runtime does not support it, this artificially raises the bar as it now has to support an unnecessary extension.
With that I agree. We could change the semantic of PI_USM_INDIRECT_ACCESS for it to mean "set if supported", but that is likely a hack. The proper solution is likely to first check if indirect access is supported and only then set the property
Right after the creation of a kernel,
piKernelSetExecInfo
is unconditionally called to setPI_USM_INDIRECT_ACCESS
. However not all kernels require this as they may purely use accessor, making this call unnecessary.For an underlying runtime supporting USM this has no (or shouldn't have) implication. But if the runtime does not support it, this artificially raises the bar as it now has to support an unnecessary extension.
The text was updated successfully, but these errors were encountered: