Skip to content

GPUArray.zeros_like | ones_like failing for scalar inputs #389

@mitkotak

Description

@mitkotak

Here's the MWE

>>> import pycuda.autoinit
>>> import pycuda.gpuarray as gpuarray
>>> import numpy as np
>>> c = 42.0
>>> zero_array = np.zeros_like(c) # array(0.)
>>> zero_array_gpu = gpuarray.zeros_like(c) # Fails
>>> one_array = np.ones_like(c) # array(1.)
>>> one_array_gpu = gpuarray.ones_like(c) # Fails

Here's the error trace

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Input In [15], in <cell line: 1>()
----> 1 gpuarray.zeros_like(c)

File ~/pycuda/pycuda/gpuarray.py:1422, in zeros_like(other_ary, dtype, order)
   1421 def zeros_like(other_ary, dtype=None, order="K"):
-> 1422     dtype, order, strides = _array_like_helper(other_ary, dtype, order)
   1423     result = GPUArray(
   1424         other_ary.shape, dtype, other_ary.allocator, order=order, strides=strides
   1425     )
   1426     zero = np.zeros((), result.dtype)

File ~/pycuda/pycuda/gpuarray.py:1394, in _array_like_helper(other_ary, dtype, order)
   1392         order = "C"
   1393 elif order == "K":
-> 1394     if other_ary.flags.c_contiguous or (other_ary.ndim <= 1):
   1395         order = "C"
   1396     elif other_ary.flags.f_contiguous:

AttributeError: 'float' object has no attribute 'flags'

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions