dpctl.tensor.from_dlpack¶
- dpctl.tensor.from_dlpack(x, /, *, device=None, copy=None)¶
Constructs
dpctl.tensor.usm_ndarray
instance from a Python objectx
that implements__dlpack__
protocol.- Parameters:
x (object) – A Python object representing an array that supports
__dlpack__
protocol.(Optional[str (device) –
dpctl.SyclDevice
,dpctl.SyclQueue
,dpctl.tensor.Device
, tuple([enum.Enum, int])])):
Array API concept of a device where the output array is to be placed.
device
can beNone
, a oneAPI filter selector string, an instance ofdpctl.SyclDevice
corresponding to a non-partitioned SYCL device, an instance ofdpctl.SyclQueue
, adpctl.tensor.Device
object returned bydpctl.tensor.usm_ndarray.device
, or a 2-tuple matching the format of the output of the__dlpack_device__
method, an integer enumerator representing the device type followed by an integer representing the index of the device. The only supported :enum:`dpctl.tensor.DLDeviceType` types are “kDLCPU” and “kDLOneAPI”. Default:None
.
- :param
dpctl.SyclDevice
, dpctl.SyclQueue
,dpctl.tensor.Device
, tuple([enum.Enum, int])])):Array API concept of a device where the output array is to be placed.
device
can beNone
, a oneAPI filter selector string, an instance ofdpctl.SyclDevice
corresponding to a non-partitioned SYCL device, an instance ofdpctl.SyclQueue
, adpctl.tensor.Device
object returned bydpctl.tensor.usm_ndarray.device
, or a 2-tuple matching the format of the output of the__dlpack_device__
method, an integer enumerator representing the device type followed by an integer representing the index of the device. The only supported :enum:`dpctl.tensor.DLDeviceType` types are “kDLCPU” and “kDLOneAPI”. Default:None
.
- Parameters:
copy (bool, optional) –
Boolean indicating whether or not to copy the input.
- If
copy
isTrue
, the input will always be copied.
- If
- If
False
, aBufferError
will be raised if a copy is deemed necessary.
- If
- If
None
, a copy will be made only if deemed necessary, otherwise, the existing memory buffer will be reused.
- If
Default:
None
.- Returns:
An array containing the data in
x
. Whencopy
isNone
orFalse
, this may be a view into the original memory.- Return type:
- Raises:
TypeError – if
x
does not implement__dlpack__
methodValueError – if the input array resides on an unsupported device
See https://dmlc.github.io/dlpack/latest/ for more details.
- Example:
import dpctl import dpctl.tensor as dpt class Container: "Helper class implementing `__dlpack__` protocol" def __init__(self, array): self._array = array def __dlpack__(self, stream=None): return self._array.__dlpack__(stream=stream) def __dlpack_device__(self): return self._array.__dlpack_device__() C = Container(dpt.linspace(0, 100, num=20, dtype="int16")) X = dpt.from_dlpack(C) Y = dpt.from_dlpack(C, device=(dpt.DLDeviceType.kDLCPU, 0))