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
The sycl USM array interface produced by the slice gives the actual memory address, and also sets offset which specifies the location of this memory address from the start of the underlying allocation.
The dpm.as_memory interprets offset as saying start at this additional displacement relative to the provided pointer. The fix should not be complicated, but I need to trace through the code to understand what is the correct way to handle offset.
Sycl USM array interface should use the base pointer in the 'data'
field, rather than its own 'data'.
```
In [1]: import numpy as np
In [2]: import dpctl, dpctl.tensor as dpt, dpctl.memory as dpm
In [3]: X = dpt.usm_ndarray(10, dtype="|f8")
...: Y = np.arange(X.size, dtype=X.dtype)
...: X.usm_data.copy_from_host(Y.view("|u1"))
In [4]: print("X =", dpm.as_usm_memory(X).copy_to_host().view(X.dtype))
...: print("X[0] =", dpm.as_usm_memory(X[0]).copy_to_host().view(X.dtype))
...: print("X[1] =", dpm.as_usm_memory(X[1]).copy_to_host().view(X.dtype))
...: print("X[2] =", dpm.as_usm_memory(X[2]).copy_to_host().view(X.dtype))
X = [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
X[0] = [0.]
X[1] = [1.]
X[2] = [2.]
```
Reproducer:
Output:
The text was updated successfully, but these errors were encountered: