Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

@kmaehashi

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

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

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:

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