v22.05.00
marcinz
released this
07 Jun 03:36
·
93 commits
to branch-22.07
since this release
Release 22.05 features complete support for advanced indexing and related indexing routines (compress
and take
), a multi-node multi-GPU sorting implementation for multi-dimensional ndarrays, window functions, several matrix/tensor operations (trace, matrix_power, multi_dot, and einsum_path) and primitive support for FFT on a single GPU using cuFFT.
Conda packages for this release are available at https://anaconda.org/legate/cunumeric.
New Features
- thrust allocator for sort by @mfoerste4 in #228
- implementation of np.block w/ a test by @sbak5 in #213
- Window functions by @magnatelee in #283
- Advanced indexing by @ipdemes in #235
- First implementation of single-GPU FFT using cuFFT by @mferreravila in #238
- Use the stream pool in Legate core by @magnatelee in #295
- Add partition api and utilize sort backend by @mfoerste4 in #287
- implementing TRACE operation by @ipdemes in #263
- adding support for negative indices in advanced indexing by @ipdemes in #322
- Add cpu-only packages to the conda variants by @m3vaz in #330
- Bump minpy to 3.8 (conda env and recipe) by @bryevdv in #332
- Remaning ufuncs by @magnatelee in #315
- Logic functions by @magnatelee in #347
- Slicing-based np.block implementation by @sbak5 in #306
- Implement matrix_power by @manopapad in #360
- Distributed N-dimensional sort by @mfoerste4 in #316
- Implement einsum_path by @manopapad in #361
- adding diag_indices and diag_indices_from routines by @ipdemes in #367
- Implement moveaxis by @manopapad in #364
- Implement __array_function __and array_ufunc by @manopapad in #353
- Implement more norm cases by @manopapad in #366
- Implement multi_dot by @manopapad in #358
- Adding support for "indices" routine by @ipdemes in #368
- Support axis=None and keepdims=True/False in argmin and argmax by @trxcllnt in #346
Improvements
- Move the ufunc module (ported to branch-22.05) by @magnatelee in #242
- Use ufuncs in special methods by @magnatelee in #247
- Initial unit tests by @bryevdv in #229
- Revise type coercion by @magnatelee in #264
- adding 'only' option to the tests.py by @ipdemes in #248
- Updates for using the new unbound store API by @magnatelee in #265
- Don't run the resolution logic if the arrays have the same dtype (ported to 22.05) by @magnatelee in #390
- Use find_packages for installation by @magnatelee in #269
- Some misc tests and types by @bryevdv in #268
- Forward-port #257 by @manopapad in #273
- Split up sort.cu for parallel compilation by @magnatelee in #277
- Debugging checks by @magnatelee in #281
- Update example programs by @magnatelee in #289
- Bump up NumPy version by @magnatelee in #291
- Don't use constexpr for window functions by @magnatelee in #294
- Better error message on unsupported complex reductions by @manopapad in #300
- handle coverage wrapping uniformly including ufuncs by @bryevdv in #272
- Architecture-agnostic check for int128 by @manopapad in #293
- Unit test fixups by @bryevdv in #303
- reduce testcases for partition test by @mfoerste4 in #304
- Adding conda build recipe files by @marcinz in #274
- Use pytest for test running by @bryevdv in #297
- Add unit tests to test.py by @marcinz in #305
- Change _cunumeric_implemented into a dataclass by @manopapad in #318
- Pass reporting explicity to coverage decorators by @bryevdv in #333
- FFT refactoring by @magnatelee in #310
- Declare ufunc formatter to be safe for parallel read by @magnatelee in #335
- Force installation of Lapack in OpenBLAS build by @marcinz in #266
- Mark no out-of-range indices for copies by @magnatelee in #336
- Discussion PR for conda envs split by @bryevdv in #326
- Use 64-bit integers for global thread ids by @magnatelee in #349
- Use legate.core arg parsing by @bryevdv in #343
- adding compress and take operations by @ipdemes in #296
- Conda recipes improvements by @marcinz in #345
- Misc small updates by @bryevdv in #352
- adding performance tests for indexing routines by @ipdemes in #337
- Add support for using cupy by @robinw0928 in #373
Bug Fixes
- Forward port late commits from 22.03 by @bryevdv in #241
- Catch up the ufunc renaming (ported to 22.05) by @magnatelee in #244
- Activate the cuBLAS workaround by checking the cuBLAS version at runtime (ported to 22.05) by @magnatelee in #246
- fix large shape >int32 by @mfoerste4 in #236
- Fix a compile error by @magnatelee in #251
- Fix the out-of-bounds bug in reshape by @magnatelee in #267
- add missing comparison functions by @bryevdv in #278
- Fix nonzero by @magnatelee in #285
- fix return value of ndarray.argsort by @mfoerste4 in #286
- Fix typos in tests after pytest transition by @manopapad in #309
- Update trace.py tests / fix some warnings by @bryevdv in #307
- Don't dump test stdout unconditionally by @bryevdv in #314
- Add typing_extensions requirement to conda recipe by @marcinz in #325
- Fix pytest exit to fail on errors by @marcinz in #334
- Fixing #321 issue by @ipdemes in #341
- Missing arguments in cases of eager-to-deferred fallback by @manopapad in #348
- Add a missing instance of share=True by @manopapad in #350
- Fix return types for some of the unary ops by @magnatelee in #354
- fixing compile-time warnings by @ipdemes in #351
- Remove special case handling for scalar arrays by @manopapad in #357
- Fix the bug in np.append test on empty input array and non-empty scalars by @sbak5 in #365
- Match NumPy's behavior for isclose(inf,inf) by @manopapad in #372
- Fix unary reductions by @magnatelee in #369
- Allow DeferredThunks to be created for empty arrays by @manopapad in #371
- Fix documentation building by @manopapad in #377
- Make the example programs pass the CI by @magnatelee in #380
Documentation
- Comparison table update by @ipdemes in #252
- Add user-facing docs for coverage reporting by @bryevdv in #261
- creating script for calculating API coverage by categories by @ipdemes in #271
- Doc update by @magnatelee in #275
- Fix docs builds for trace by @manopapad in #308
- fixing documentation for fft by @ipdemes in #302
- Add a custom autodoc class for ufuncs by @bryevdv in #317
- Refactor comparison table as Sphinx extension by @bryevdv in #323
- lgpatch docs + doc fixups by @bryevdv in #356
New Contributors
- @mferreravila made their first contribution in #238
- @m3vaz made their first contribution in #330
- @robinw0928 made their first contribution in #373
Full Changelog: v22.03.00...v22.05.00