* 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
* Implement 3D and transposed 3D convolutions.
* Merge changes from onnx-ir #1921 pr
---------
Co-authored-by: Dilshod Tadjibaev <939125+antimora@users.noreply.github.com>
* [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
* Refactor serialization of benchmarks
* flatten benchmarks data to make it easier to save documents to a database and
query them
* split some information into their own fields like backend and device
* add new seralized info:
- computed values (mean, median, variance, min, max)
- number of samples
- operation name
- tensor shapes if any
* serialize to separate files, one file per benchmark run
* simplify persistence module to only a save method
* Update bench save file format to use name and uuid
* Compute serialized fields count automatically via a macro
* Rework naming of benchmarks, shapes and add options field
Remove operations field
Correctly create one file per ran benchmark
* Serialize benchmark num_repeats
* Fix expect message to follow the 'should' convention
* Cargo fmt :-)
* Make Clippy happy
* Save files in the burn subdirectory
* Change name of custom_gelu bench to just gelu
* Remove num_repeats from backend-comparison benchmarks
* Fix wrong variable name to compute the median
* Remove false positive possibility in test_mean_duration