Skip to content

RFC: Drop host-side array APIs #471

@leofang

Description

@leofang

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.

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions