Skip to content

[Tracker] Implement all numpy.* APIs in CuPy #6078

Description

@kmaehashi

Implement GPU version of numpy.* functions in cupy.* namespace.

This is a tracker issue that lists the remaining numpy.* APIs (see also: comparison table). I've categorized them based on difficulty so that new contributors can pick the right task. Your contribution is highly welcomed and appreciated!

List of APIs

Note

Before start working on, be sure to check the latest comparison table and search for pull requests to see if the function is still open for contribution.

Very Easy

Easy

Medium

Medium to Hard

Low priority

Iterator functions

  • numpy.ndenumerate
  • numpy.nditer
  • numpy.nested_iters

Help functions

  • numpy.info
  • numpy.lookfor
  • numpy.source
  • numpy.show_runtime (needs a design decision: we currently provide runtime info via cupy.show_config)

Internal functions

  • numpy.deprecate
  • numpy.deprecate_with_doc

Dtype APIs - need to filter types unsupported by CuPy

  • numpy.maximum_sctype
  • numpy.cast (undocumented API) (hint: see numpy/core/numerictypes.py)
  • numpy.typecodes (undocumented API)
  • numpy.sctypeDict (undocumented API)
  • numpy.sctypes (undocumented API)
  • numpy.nbytes (undocumented API)

Rarely used APIs

Steps to Contribute

Note: You will need a GPU environment to develop CuPy.

  1. Fork and star ⭐ the CuPy repository 😉

  2. Pick a function you want to work on. Check out the NumPy API Reference to understand what should be implemented. Please search for pull requests before start working on, somebody may have opened a PR already.

  3. Implement a function in your branch. If you need help, join Gitter or just ask for help in this issue.

  4. Implement test code.

  5. Build CuPy and run tests to confirm that the function runs fine:
    pip install --no-build-isolation -e . && pytest tests/cupy_tests/PATH_TO_YOUR_TEST
    See the Contribution Guide for details.

  6. Submit a pull-request to the main branch. (example: Implement cupy.linalg.cond #9140)

See also:

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions