-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Over the years, we have been recommending users to use CuPy if they need a GPU array in Python (ex: numba/numba#7624). Users are encouraged to use CuPy arrays to hold their data on GPUs, and pass CuPy arrays to a Numba kernel. This has been working for very long time.
As of today, CuPy offers a more performant and full-fledged array container, covering all numba-cuda's device array features and beyond. There is no reason we want to maintain the legacy constructs in numba-cuda, nor do we have the intent to grow numba-cuda into an array library.
This RFC states our intent to deprecate and remove numba-cuda's host-side device array APIs, i.e. those called on the host side to allocate and/or initialize memory. Specifically,
- all array constructors, including
to_device()
DeviceNDArray
- all device/pinned/managed memory variants
as shown in this page and this page, are considered deprecated immediately and subject to future removal (which, however, is expected to be a very slow process, giving users ample time to migrate their code).
For new libraries, tutorials, demos, including those from numba-cuda's downstream libraries, we encourage you to switch to use CuPy asap.
The device-side array APIs (i.e. those that are called inside a numba-cuda kernel, such as shared and local arrays) are not considered by this RFC.