What's Changed
- Rename hooks to io_call by @Chapaman in #1774
- chore: fully deprecate tokens + use :hooks as the option for named io_calls by @polvalente in #1780
- fix: batched LinAlg grads for svd and eigh by @polvalente in #1783
- fix(grad): while grad propagation rule by @polvalente in #1785
- perf(qr): replace explicit Householder matrix with implicit rank-1 update, ~4-9x speedup by @Ljzn in #1784
- perf(lu): replace invert with triangular_solve in gradient, ~4x speedup by @Ljzn in #1786
- perf(binary_backend): replace element-wise O(n) scan with zip-reduce, ~3-4x speedup by @Ljzn in #1787
- docs: reference nx signal in readme by @polvalente in #1789
- perf(grad): use triangular_solve to invert R in QR grad by @polvalente in #1790
- perf(grad): use triangular_solve to invert A in triangular_solve grad by @polvalente in #1791
- perf(linalg): use thin SVD when only singular values are needed by @polvalente in #1792
- perf(grad): avoid materializing full eye matrices in svd_grad by @polvalente in #1794
- perf(binary): zip-reduce BinaryBackend.select (and related bitstring scans) by @polvalente in #1793
- feat(torchx): support Nx.to_pointer and Nx.from_pointer by @polvalente in #1796
- fix(exla): install libexla.so atomically by @aptinio in #1799
- docs: grammar in put_slice by @greetingsfellowhumans in #1800
- fix(docs): reformat codeblock by @greetingsfellowhumans in #1803
- fix: return the modified tensor expression from the cache computation for :hooks by @polvalente in #1804
- Lift buffer donation to Nx.Defn by @Chapaman in #1795
- fix(defn): accept constant tensor arguments in Nx.block by @cash-mckeeman in #1807
- fix(grad): functions with tuple outputs should broadcast grads onto unused outputs by @cash-mckeeman in #1808
- fix: Nx.LinAlg.qr grad for tall and wide matrices by @polvalente in #1811
- fix(grad): increase vectorization support by @polvalente in #1812
- fix(exla): restore OutputBuffer default constructor for CUDA callback path by @blasphemetheus in #1813
- Do not propagate donatable marks onto results by @seanmor5 in #1814
- Fix multi-tensor op dispatch to consider all tensor arguments by @blasphemetheus in #1815
- Fix Nx.LinAlg.pinv for batched input by @blasphemetheus in #1816
- Accept sub-byte bitstrings in Nx.from_binary by @blasphemetheus in #1817
- Fix inspect crash on sub-byte integer tensors by @blasphemetheus in #1818
- Raise ArgumentError for multiple :auto dimensions in reshape by @blasphemetheus in #1819
- Add test coverage for revectorize's multiple-:auto guard by @blasphemetheus in #1820
- Fix Nx.LinAlg.eigh dropping the batch for 1x1 matrices by @blasphemetheus in #1821
- EXLA: support custom call MLIR attributes by @humdrum00001010 in #1824
- fix(grad): seed the backward pass from the expression's own type by @cash-mckeeman in #1828
- Add runtime_raise inside defn by @Chapaman in #1822
- exla: add EXLA.load_dylib/1 for custom call libraries by @humdrum00001010 in #1826
- fix(grad): take while gradient carry types from the carry by @cash-mckeeman in #1830
- docs: add AGENTS.md by @polvalente in #1832
- fix(nx): keep a reshaped float constant a constant by @cash-mckeeman in #1837
- fix(exla): use per-partition device id when preparing shard_jit input buffers by @polvalente in #1833
- fix(exla): support container arguments in shard_jit input_shardings by @polvalente in #1834
- fix(nx): read float literals at the precision of the expression around them by @cash-mckeeman in #1835
- release v1.0 by @polvalente in #1838
New Contributors
- @Ljzn made their first contribution in #1784
- @aptinio made their first contribution in #1799
- @greetingsfellowhumans made their first contribution in #1800
- @cash-mckeeman made their first contribution in #1807
- @humdrum00001010 made their first contribution in #1824
Full Changelog: v0.13.0...v1.0.0