NuMojo v0.10.0 is out (Mojo v1.0.0)

This release brings NuMojo onto Mojo v1.0.0 and does some spring cleaning :): we removed the standalone Matrix type, everything it did now lives on NDArray (matmul, inv, solve, lu_decomposition, det, trace, axis-aware sort/argsort/sum). If your code imports numojo.Matrix, swap to NDArray, or for pure 2D matrix work, check out our other project linamo.

Highlights:

  • First building blocks for device-agnostic arrays: a new (experimental) AcceleratorNDArray, basic GPU arithmetic, and a GPU sum kernel. We will continue working on this and rename it to NDArray once the API settles!
  • Broadcasting for NDArray.
  • A big batch of indexing/search routines: fancy indexing, where, nonzero, take, put, N-D diagonal, searchsorted, unravel_index, ravel_multi_index, plus column_stack/concatenate/hstack/vstack/row_stack.
  • A round of memory-safety fixes around unsafe pointer access, squashes some ASAP-destruction pointer-free bugs.

Full details in the changelog.

Thanks to everyone who contributed code, tests, and issue reports. If you hit anything on v0.10.0, let us know here or open an issue. If you are interested in contributing, please join our discord!

4 Likes