* 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
* chore(candle): Allow enabling accelerate
* Temporarily disable test for accelerate feature
* Allow enabling accelerate from upstream
* Update the README
* Have xtask also test using accelerate
* Renable failing test
* Fix matmul on candle when using accelerate
* Add additional comment to xtask method