v0.10.0
tracel-ai/burnv0.10.0Oct 24, 2023by nathanielsimard
AI Summary
This release introduces the `burn-compute` crate, a new training dashboard, and WebGPU support in the browser, accompanied by several breaking changes to the tensor API.
Key Highlights
- Introduction of `burn-compute` crate for custom backends.
- New training dashboard using Ratatui.
- WebGPU support in the browser.
- Breaking changes: Reading operations are async in wasm.
Breaking Changes
- Reading operations are now async when compiling to wasm (except for `wasm-sync`).
- Improved Clamp API.
- Massive refactor to use `burn-compute`.
- Heavy refactor of `burn-train`.
New Features
- Burn Compute crate for async backends.
- Autotune capabilities.
- ONNX record types and no-std support.
- Covariance and diagonal operations.
- Unfold tensor operation.
- Non-blocking reads in WGPU.
- Custom checkpoints and early stopping.
Full Release Notes
Burn `v0.10.0` sees the addition of the `burn-compute` crate to simplify the process of creating new custom backends, a new training dashboard and the possibility of using the GPU in the browser along with a web demo. Additionally, numerous new features, bug fixes, and CI improvements have been made. Warning: there are breaking changes, see below. # Changes ## Burn Compute - Introduction of `burn-compute`, a new Burn crate making it easier to create async backends with custom kernels. @nathanielsimard, @louisfd - Add new memory management strategies @louisfd, @nathanielsimard - Add autotune capabilities @louisfd ## Burn Import - Add more ONNX record types @antimora - Support no-std for ONNX imported models @antimora - Add custom file location for loading record with ONNX models @antimora - Support importing erf operation to ONNX @AuruTus ## Burn Tensor - Add covariance and diagonal operations @ArvidHammarlund - [Breaking] Reading operations are now `async` when compiling to `wasm`, except when `wasm-sync` feature is enabled. @nathanielsimard @AlexErrant - [Breaking] Improved Clamp API @nathanielsimard - Add unfold tensor operation @agelas, @nathanielsimard - Improve tensor display implementation with ellipsis for large tensors: @macroexpansion ## Burn Dataset - Improved speed of SqLite Dataset @antimora - Use gix-tempfile only when sqlite is enabled @AlexErrant ## Burn Common - Add benchmark abstraction @louisfd - Use thread-local RNG to generate IDs @dae ## Burn Autodiff - Use AtomicU64 for node ids improving performance @dae ## Burn WGPU - Enable non-blocking reads when compiling to `wasm` to fully support WebGPU @nathanielsimard - Add another faster matmul kernel @louisfd - [Breaking] Massive refactor to use burn-compute @nathanielsimard ## Burn Candle - Candle backend is now available as a crate and updated with Candle advances @louisfd @agelas ## Burn Train - New training cli dashboard using ratatui @nathanielsimard - [Breaking] Heavy refactor of burn-train making it more extensible and easier to work with @nathanielsimard - Checkpoints can be customized with criteria based on collected metrics @nathanielsimard - Add the possibility to do early stopping based on collected metrics @nathanielsimard ## Examples - Add image classifier web demo using different backends, including WebGPU, @antimora ## Bugfixes - Epoch and iteration were swapped. (#838) @daniel-vainsencher - RNN (Gru & LSTM) were not generic over the batch size @agelas, @EddieMataEwy - Other device adaptors in WGPU were ignored when best available device was used @chistophebiocca ## Documentation - Update book @nathanielsimard - Doc improvements with std feature flag: @ArvidHammarlund ## Chores - Update all dependencies @antimora - Lots and lots of CI Improvements with coverage information @Luni-4, @DrChat, @antimora, @dae, @nathanielsimard # Thanks Thanks to all aforemetioned contributors and to our sponsors @smallstepman, @0x0177b11f and @premAI-io.