Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

dpt.asarray failed to copy input numpy.ndarray #2055

Copy link
Copy link
@antonwolfy

Description

@antonwolfy
Issue body actions

The below example raised an exception:

import numpy, dpctl, dpctl.tensor as dpt

dpctl.__version__
# Out: '0.20.0dev0+139.gf3b70eda45'

def func(x):
    axes = [2, 0, 1]
    x = dpt.permute_dims(x, axes)
    sh = [4, 2, 3]
    return dpt.reshape(x, sh)

def test():
    a = dpt.ones((2, 3, 4), dtype=numpy.ulonglong)
    r0 = func(a)
    r1 = func(a)
    mask = (dpt.asnumpy(r1) >= 0)
    r0[dpt.asarray(mask)]

test()
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
File dpctl/tensor/_usmarray.pyx:1425, in dpctl.tensor._usmarray.usm_ndarray.__setitem__()

File ~/miniforge3/envs/dpnp_dev/lib/python3.12/site-packages/dpctl/tensor/_copy_utils.py:114, in _copy_from_numpy_into(dst, np_ary)
    113 # synchronizing call
--> 114 ti._copy_numpy_ndarray_into_usm_ndarray(
    115     src=src_ary, dst=dst, sycl_queue=copy_q, depends=dep_ev
    116 )

ValueError: Memory addressed by the output array is not sufficiently ample.

During handling of the above exception, another exception occurred:

ValueError                                Traceback (most recent call last)
Cell In[7], line 1
----> 1 test()

Cell In[6], line 6, in test()
      4 r1 = func(a)
      5 mask = (dpt.asnumpy(r1) >= 0)
----> 6 r0[dpt.asarray(mask)]

File ~/miniforge3/envs/dpnp_dev/lib/python3.12/site-packages/dpctl/tensor/_ctors.py:612, in asarray(obj, dtype, device, copy, usm_type, sycl_queue, order)
    608     if copy is False:
    609         raise ValueError(
    610             "Converting numpy.ndarray to usm_ndarray requires a copy"
    611         )
--> 612     return _asarray_from_numpy_ndarray(
    613         obj,
    614         dtype=dtype,
    615         usm_type=usm_type,
    616         sycl_queue=sycl_queue,
    617         order=order,
    618     )
    619 if _is_object_with_buffer_protocol(obj):
    620     if copy is False:

File ~/miniforge3/envs/dpnp_dev/lib/python3.12/site-packages/dpctl/tensor/_ctors.py:273, in _asarray_from_numpy_ndarray(ary, dtype, usm_type, sycl_queue, order)
    265     _ensure_native_dtype_device_support(dtype, copy_q.sycl_device)
    266     res = dpt.usm_ndarray(
    267         ary.shape,
    268         dtype=dtype,
   (...)    271         buffer_ctor_kwargs={"queue": copy_q},
    272     )
--> 273 res[...] = ary
    274 return res

File dpctl/tensor/_usmarray.pyx:1427, in dpctl.tensor._usmarray.usm_ndarray.__setitem__()

ValueError: Input of type <class 'numpy.ndarray'> could not be copied into dpctl.tensor.usm_ndarray
Reactions are currently unavailable

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.