Skip to content
This repository was archived by the owner on Nov 17, 2023. It is now read-only.
This repository was archived by the owner on Nov 17, 2023. It is now read-only.

[RFC] Python Array API standardization #20501

@NathanYyc

Description

@NathanYyc

Problem statement

Python API Standard is an standard Array API for all Python numerical computing, data science, machine learning, and deep learning frameworks. By specifying an API for the most common ways arrays are constructed and used, It aims to address the differences among those frameworks that makes developers quite difficult to write code that works with multiple (or all) of these libraries.

Proposed solutions

By comparing the Python API Standard and APIs in MXNet.numpy, an list of APIs similar to the list in pytorch Python Array API Compatibility Tracker is formed. Further works will be done according to the list attached. The dlpack synchronization APIs in the list is specified in Specify synchronization semantics.

References

On-going Efforts

#20454
#20478

Attachment

MXNet & Python Api Standard Comparison

  • current list is base on APIs in MXNet 2.0 & Python Data API Specification(commit: cf5aa666017b8a8a2117aa1cb1770eb1cf841942)
  • We classified each API into 6 categories:
    • No Changes: The current PyTorch implementation already conforms to the Data API.
    • New API: Need to add a new function or constant.
    • Enhancement: Need enhancement to the existing function (add new argument, etc.).
    • Enhancement with BC: Need to change signature of the existing function. (breaking change if we implement the API directly under torch.* namespace)
    • Behavior: Need to change behavior of the existing function. (breaking change if we implement the API directly under torch.* namespace)
    • N/A: The detailed specification is not determined yet in the Data API.
  • There is 46 New APIs needed, 60 current APIs needed to be enhanced, 0 API needed to change behavior and 2 APIs is not specified in current Data API commit.
    @barry-jin @szha

Metadata

Metadata

Assignees

No one assigned

    Labels

    RFCPost requesting for comments

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions