uarray: Separating interface from implementation
summary
Claims that NumPy must separate interface from implementation and that __array_ufunc__ and __array_function__ are insufficient, and presents a working multiple-dispatch system called uarray plus a NumPy-facing namespace unumpy. The code runs in Python with a C++ backend available, already powers SciPy FFT, and lets modules switch at runtime to backends like CuPy, Dask, PyData/Sparse, PyTorch or MXNet. The implementation works today and aims to make backend choice explicit rather than implicit.
AI-written summary · about
chapters (9)
- 0:00uarray project intro
- 3:53NumPy history and arrays
- 10:14NumPy’s interface problem
- 16:30Multiple dispatch solution
- 21:49uarray’s interface separation
- 26:45uarray state and future
- 31:37Impact on users and libraries
- 34:25Higher-level abstractions
- 35:51Q&A
related talks
43muarray - Efficient and Generic Array Computation
30mThe evolution of array computing in Python
28mA Hitchhiker's Guide to the Array API Standard Ecosystem
30mCuPy: A NumPy-compatible Library for GPU
20mNumS: Scalable Array Programming for the Cloud
27mData Apis: Standardization of N-dimensional arrays and dataframes
27mAPL-Inspired Techniques for Advanced NumPy
30mNumba, a JIT compiler for fast numerical code
