Open
Description
This issue tracks the changes necessary to adopt the v2023.12 Array API. This was originally mentioned in #18353. Note that there may be some specifications that we already satisfy, however the vast majority of these will need alterations.
API Updates
- Add support for
max_version, dl_device, copy
kwargs in__dlpack__
to match Array API #20198 | spec - Add support for
device
andcopy
kwargs infrom_dlpack
to match Array API #20175 | spec - Update error type in
__dlpack__
and__dlpack_device__
to match Array API #20194 | spec - Add support for
copy
kwarg inastype
to match Array API #20195 | spec
New API
- Add __array_namespace_info__ and corresponding utilities #20294 | spec
- Expose existing functions in array API namespace #20753
- Update
jnp.clip
to Array API 2023 standard and introducesjax.experimental.array_api.clip
#20550 | spec - Add new unstack function to numpy/array_api namespaces #20755 | spec
- Fixed hypot bug on nan/inf pairings, began deprecation of non-real values #20754 | spec
- Add new cumulative_sum function to numpy and array_api namespaces #20756 | spec
- Expose tile function in array_api namespace #20954
Breaking Changes
For specific details on what has changed, look on their specification pages for "Changed in version 2023.12 ..."
Common Utilities Refactor
- Device placement + copy semantics
- Initial draft can be found here
- Get
Device
fromDevice | Sharding