Using python3.8 with cupy-cuda111
creating a cupy array and trying to cast to cp.int_ causes cupy assume an implicit conversion to numpy array
import cupy as cp def test_function(x): y = cp.int_(x * 10) return(y) x = cp.array([0.1, 0.2, 0.3, 0.4, 0.5]) y = test_function(x) print(y)
This I assumed would multiply the scalar and return
([1, 2, 3, 4, 5], dtype=cp.int_)
but instead gives:
TypeError: Implicit conversion to a NumPy array is not allowed. Please use `.get()` to construct a NumPy array explicitly.
Why does this error get generated?
How can I multiply and cast to int_ the cp.array?
You can do
x = x * 10 y = x.astype(cp.int_) return y
The problem is
np.int_, so calling that would invoke a host function to operate on a GPU array, which is not allowed.