Skip to content

RFC: 2022 Standardization Priorities #343

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
kgryte opened this issue Dec 9, 2021 · 3 comments
Closed

RFC: 2022 Standardization Priorities #343

kgryte opened this issue Dec 9, 2021 · 3 comments
Milestone

Comments

@kgryte
Copy link
Contributor

kgryte commented Dec 9, 2021

The purpose of this issue is to identify focus areas for the 2022 revision of the array API specification.

The following is not authoritative and is subject to change based on member (and community) feedback. The primary intent is to kickstart conversations around how the consortium should prioritize time and resources to continue advancing the array API specification over the course of the next year (2022).

Based on the issue tracker, consortium meetings, and discussions, the following focus areas seem to enjoy broad consensus on moving forward:

  • complex numbers: adding complex number support has been discussed in consortium meetings and has consensus. Adding support for complex numbers to the specification is a prerequisite for FFTs and certain additional linear algebra APIs.
  • FFTs: fast Fourier transforms have been proposed as an extension to the specification (see gh-189), have been discussed in consortium meetings, and have consensus.
  • linear algebra APIs: expanding the linear algebra extension surface area to include APIs requiring complex number support (e.g., eig et al). Additionally, adding einsum.
  • additional APIs: expanding the surface area of the specification to include additional common APIs (see gh-187). Notable APIs include take and put (see gh-177).

Additional focus areas necessary for ensuring the continued success of the specification include the following:

  • compliance tooling: developing and expanding specification compliance tooling. The array API test suite is still being actively developed and continues to co-evolve alongside the specification. Further, developing a mechanism for reporting and making publicly available specification compliance is important for downstream consumer adoption.
  • RST migration: migrating the specification from Markdown to RST (see gh-283) and aiding machine readability (see gh-49).

A 2022 milestone tracker has been created to help track progress as we enter the new year.

Feedback

If you have additional feedback and would like to propose additional focus areas or would like to amend the ones above, feel free to comment on this thread.

Cheers!

@kgryte kgryte added this to the v2022 milestone Dec 9, 2021
@rgommers
Copy link
Member

The "additional APIs" topic will be mostly driven by pain points identified during adoption of the v2021 API by array-consuming libraries (which is already ongoing).

There is a lot of interest in a common PRNG API. It looks like the new numpy.random.Generator API is suitable and other libraries are further with adopting either that or something similar to it than I was expecting. So that should be a priority I think, it's the most obvious thing that's heavily used and we left out for v2021.

@rgommers
Copy link
Member

Looking at this issue 11.5 months later, most of it was done:

  • complex number support will be completed soon,
  • fft extension is complete,
  • linalg extension: some extensions, not einsum though, and there's still a WIP PR for eig and eigvals that needs finishing up,
  • additional APIs: take and some other ones were added, plus missing keywords that implementors ran into,
  • compliance tooling: still in progress, some work left here (probably for early next year),
  • RST migration: this was done. the "machine readable format" was mostly about function signatures, those are now in .py files so that is also done (even if the issue is still open).

So we should be on track for closing this issue in a couple of weeks.

@rgommers
Copy link
Member

Now that complex number support is complete and all that is left for v2022 is content refactoring for maintainability, it's time to close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants