* Migrate to xtask-common crate
* Fix example crate name for simple-regression
* Refactor CI workflows
* Flatten linux workflows
* Install grcov and typos from binaries
Although xtask-common support auto-installation of these tools via cargo
it is a lot faster to install them via the distributed binaries
* [CI] Update Rust caches on failure
* [CI] Add shell bash to jobs steps
* [CI] Try cache all crates
* Fix no-std tests not executing
* [CI] Add CARGO_INCREMENTAL 0
* Exclude tch and cuda from tests and merge crates and examples steps
* Fix some typos found with typos cli
* Add Windows and MacOS jobs
* Only test no-std with default rust target
* Fix syntax in composite action setup-windows
* Enable incremental build
* Upate cargo alias for xtask
* Bump to github action checkout v4
* Revert to tch 0.15 and disable WGPU on windows
* Fix color in output
* Add Test command
* Test long output errorring
* Build and test workspace before additional builds and tests
* Disable wgpu tests on windows
* Remove tests- prefix in CI workflow jobs name
* Add Checks command
* Rename ci workflow jobs
* Execute windows and macos CI tests on rust stable only
* Rename integration test files with a test_ prefix
* Fix format
* Don't auto-correct "arange" with typos
* Fix typos in code
* Merge unit and integration tests steps
* Fix macos tests
* Fix coverage step
* Name publish-crate workflow
* Fix bad cache name for macos
* Reorganize commands and get rid of the ci command
* Fix dispatch to customized commands for Burn
* Update to last version of tracel-xtask
* Remove unnecessary shell bash in ci workflow
* Update cargo.lock
* Fix format
* Bump tracel-xtask
* Simplify dispatch of base commands using updated macro
* Update to last version of tracel-xtask
* Adapt legacy run_checks script with new xtask commands
* Run xtask in debug for faster compilation time
* Ditch build step in ci and enable coverage for stable linux only
* Freeze tracel-xtask to specific commit rev
* Update cargo.lock
* Update Step 6 of CONTRIBUTING guidelines about run-checks script
* Remove unneeded CI and CD paragraphgs in CONRIBUTING.md
* Change cache version
* Fix typos
* Use centralized actions and workflows
* Update to last version of tracel-xtask
* Update CONTRIBUTING file to mention integration tests
* Add custom build for thumbv6m-none-eabi
* Ignore onnx files for typos check
* Fix action and workflow paths in github workflows
* Fix custom builds on MacOS
* Bump tracel-xtask crate to last version
* Update Cargo.lock
* Update publish workflow to use reusable workflow in tracel repo
* Add --ci flag for build and test commands
* Add QuantizationBackend, QTensorOps and QTensor
* Refactor QTensorOps as part of Backend trait
* Add tensor dequantize, QFloat dtype and default affine/symmetric quant
* Add ndarray default quantization implementation
* Fix clippy
* Add rayon parallel iter
* Add quantization operations to book
* Add q_shape and q_device ops to avoid converting the tensor just to get attributes
* Implement autodiff grad ops
* Mark autodiff todo for QAT
* Remove note
* Add q_inner and q_from_inner
* Implement 3D and transposed 3D convolutions.
* Merge changes from onnx-ir #1921 pr
---------
Co-authored-by: Dilshod Tadjibaev <939125+antimora@users.noreply.github.com>
* Move distribution to module
* Add new TensorData with serialization support
* Implement display and from for TensorData
* Add missing Cargo.lock
* Add missing bytemuck feature
* Add zeros, ones, full and random TensorData methods
* Refactor Data -> TensorData usage
* Fix tests
Since TensorData is not generic over the element type anymore no type inference can be done by the compiler. We must explicitly cast the expected results to the expected backend type.
* Remove commented line
* Fix import
* Add record-backward-compat
* Remove dim const generic from TensorData
* Support NestedValue de/serialization with TensorData
* Fix burn-jit tests
* Remove eprinln
* Refactor onnx import to use TensorData
* Fix tch from_data
* Fix nested value serialization for u8
* Fix missing import
* Fix reduce min onnx test
* Fix deprecated attribute
* Remove shape getter
* Remove strict assert in tests
* Add tensor data as_bytes
* Add tensor check for rank mismatch
* Fix typo (dimensions plural)
* Fix error message
* Update book examples with from_data and fix Display impl for TensorData
* Add deprecation note
* #1747
Upgrade Rust dependencies
* Revert upgrade for tch
The update of tch on windows gives an error:
INTEL MKL ERROR: The specified module could not be found. mkl_vml_avx2.1.dll.
Intel MKL FATAL ERROR: cannot load mkl_vml_avx2.1.dll or mkl_vml_def.1.dll.
* Keep only .cargo/config.toml file which works with rust > 1.75
---------
Co-authored-by: Sylvain Benner <sylvain@benner.online>
* [backend-comparison] Remove tui
* [backend-comparison] Add nice and compact burnbench output
* [backend-comparison] Cargo check fixes
* Tweak bar style for consistency on different terminals
* [backend-comparison] Add uploading state to nice processor
Also simplified with only one processor for both stdout and stderr
since now we also need to process stdout to detect uploading.
* [backend-comparison] Add spinner to have feedback while compiling
* [backend-comparison] Fix Compiling status message on MacOS
* [backend-comparison] Remove prefix in progress bar message
* [backend-comparison] Refactor tracker to use tick and AtomicU64
* [backend-comparison] Set OutputProcessor bounds at the trait level
* [backend-comparison] Fix typos and remove dead code
* [backend-comparison] Create run_cargo function in for loops
* Make backend names in JSON reports match burnbench CLI
- add `config_name` to `Backend` trait
- add `backend_config_name` to `Benchmark` trait
- fix documentation for JSON reports to use correct unit of time
* Revert "Make backend names in JSON reports match burnbench CLI"
This reverts commit a09edb6389.
* [backend-comparison] Serialize the feature name passed to burnbench
---------
Co-authored-by: syl20bnr <sylvain.benner@gmail.com>
* Bump sysinfo crate to 0.30.7
* [backend-comparison] Add CPUs and GPUs system info to results
* [backend-comparison] Add integrated GPUs to gathered system info
* [backend-comparison] Use AutoGraphicsApi wgpu backend selection
* [backend-comparison] Serialize both auth tokens to cache file
We need to refresh token to be able to renew an expired access token.
* [backend-comparison] Refresh access token
* [backend-comparison] Display user name with auth command
* [backend-comparison] Update README
* [backend-comparison] Fix PR comments
* [backend-comparison] Fix hyphen consistency in benchmark names
* [backend-comparison] Fix release build error when refreshing token
The reqwest must have an explicit empty body otherwise the release
build returns a 411 when refreshing the tokens without even calling
the benchmark server endpoint.
Uploading is enabled with already implemented --share argument
of the burnbench command line tool.
The burnbench binary passes the URL of the server and the auth
token to the cargo bench process using the additional arguments
--sharing-url and --sharing-token respectively.
The persistence module then upload the results when a --sharing-url
is provided.
The URL is for now hardcoded. The endpoint is production when
compiling in release mode and it is localhost otherwise.
* [backend-comparison] Add auth command to burnbench CLI
* [backend-comparison] Add --share argument to Burnbench CLI
* Cargo clippy fixes
* Fix typos
* Add comment to explain the FIVE_SECONDS constant
* Use num_args to force at least one arg value and make args required
In the run command, makes the --benches and --backends required
The manual check is no longer necessary
* Use and_then instead of match
* Simplify token verification
* Use map_or instead of match