Commit Graph

40 Commits

Author SHA1 Message Date
Guillaume Lagrange 81ec64a929
Add ResNet benchmark (#1534) 2024-09-16 09:57:15 -04:00
Nathaniel Simard 94cd8a2556
Perf/slice (#2252) 2024-09-09 11:08:39 -04:00
Nathaniel Simard 96a23408d2
Chore/update cubecl (#2235) 2024-09-01 17:05:13 -04:00
Sylvain Benner a88c69af4a
Refactor xtask to use tracel-xtask and refactor CI workflow (#2063)
* 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
2024-08-28 15:57:13 -04:00
Nathaniel Simard 19cd67a9e2
Migration/cubecl (#2041) 2024-07-22 11:08:40 -04:00
nathaniel 882a27c52c Revert "Revert "Implement 3D and transposed 3D convolutions. (#1945)""
This reverts commit b8b47ea6e6.
2024-07-05 18:57:01 -04:00
nathaniel b8b47ea6e6 Revert "Implement 3D and transposed 3D convolutions. (#1945)"
This reverts commit d696d74e3d.
2024-07-05 09:40:32 -04:00
Guillaume Charifi d696d74e3d
Implement 3D and transposed 3D convolutions. (#1945)
* Implement 3D and transposed 3D convolutions.

* Merge changes from onnx-ir #1921 pr

---------

Co-authored-by: Dilshod Tadjibaev <939125+antimora@users.noreply.github.com>
2024-07-02 17:54:35 -05:00
Arthur Brussee ac9f942a46
Remove GraphicsAPI generic for WgpuRuntime (#1888) 2024-06-17 09:04:25 -04:00
Nathaniel Simard c7ad25ab60
Update cuda-jit (#1799) 2024-05-24 11:31:47 -04:00
Louis Fortier-Dubois 033171920c
Cube: first ported kernel + comptime support + variable reuse + cleanup (#1797) 2024-05-22 14:08:21 -04:00
Louis Fortier-Dubois 6ae3926006
New autodiff graph memory management strategy (#1698)
---------

Co-authored-by: nathaniel <nathaniel.simard.42@gmail.com>
2024-04-26 12:25:53 -04:00
Nathaniel Simard 599a20d586
Upgrade wgpu (#1692) 2024-04-25 16:32:50 -04:00
Sylvain Benner 65222761fd
[backend-comparison] Add URL to browse results on burn.dev website (#1573) 2024-04-04 10:06:30 -04:00
Sylvain Benner 9a1459797f
[backend-comparison] Rework burnbench output to be nicer and more compact (#1568)
* [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
2024-04-03 15:41:35 -04:00
Nathaniel Simard b0c5986d16
Feat/lazy init (#1539) 2024-04-02 10:13:35 -04:00
Sylvain Benner c4eac86ce5
[backend-comparison] Add all choice to --benches and --backends (#1567)
+ Make some tweaks in logs
2024-04-02 09:27:49 -04:00
Ilya Dmitrichenko 67994c02d5
Make backend names in JSON reports match burnbench CLI (#1375)
* 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>
2024-04-01 09:48:44 -04:00
Louis Fortier-Dubois edcd92f13d
Refactor execute_dynamic with Execution struct (#1550) 2024-03-28 17:27:48 -04:00
Sylvain Benner 32a8d8041c
Tweak/add kind to gelu benchmark name (#1533)
* Add kind to gelu benchmark name

* [backend-comparison] Compute column size in benchmarks report
2024-03-28 12:35:15 -04:00
Sylvain Benner 28233d9f59
[backend-comparison] Add Operating System information (#1531)
* [backend-comparison] Add Operating System information

* [backend-comparison] Simplify serialization of os info
2024-03-26 15:58:38 -04:00
Sylvain Benner 0adda72316
[backend-comparison] Add system information to benchmark results (#1495)
* 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
2024-03-22 23:24:49 -04:00
Sylvain Benner e8863dafd2
[backend-comparison] Refresh access token and display authenticated user name (#1483)
* [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.
2024-03-20 15:39:32 -04:00
Akhil 4e68cb2175
Prints benchmark results in a neat table and attempts to run every benchmark (#1464)
* log benchmark results as table

* update with comments

* remove redundants

* ds

* in markdown format

* fix
2024-03-15 06:55:18 -04:00
Sylvain Benner fa0dfec3c7
[backend-comparison] Compile benches in dedicated target directory (#1435)
This avoids file access denied error on Windows while executing
burnbench from cargo with a release build.
2024-03-12 09:32:48 -04:00
Nathaniel Simard efbe818465
Refactor wgpu max pooling (#1398) 2024-03-04 13:23:11 -05:00
Sylvain Benner 1117757e2b
[backend-comparison] Upload benchmarks to server (#1381)
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.
2024-03-02 11:38:18 -05:00
Sylvain Benner 9bf3f3f720
[backend-comparison] Update Github App ID with official application (#1397) 2024-03-01 17:31:27 -05:00
Sylvain Benner 00b6c7d136
[backend-comparison] Add GitHub authentication to burnbench CLI (#1285)
* [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
2024-02-13 11:16:53 -05:00
Nathaniel Simard a9b6dbc177
Enable burn fusion by default (#1223) 2024-02-08 11:28:02 -05:00
Sylvain Benner 5bef9d8432
[backend-comparison] Burnbench CLI (#1260) 2024-02-07 09:28:02 -05:00
Nathaniel Simard b99726f804
[burn-fusion] save all execution plans for any trigger (#1143) 2024-01-16 14:02:42 -05:00
Sylvain Benner 9bd2d7b7d4
Refactor serialization of backend-comparison benchmarks (#1131)
* 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
2024-01-12 11:15:00 -05:00
Louis Fortier-Dubois ab67b6b036
slice assign in candle (#1095) 2024-01-08 16:41:34 -05:00
Louis Fortier-Dubois 17f59057d6
Feat/backend comparison/persistence (#979)
* setting up

* wip

* persistence works

* cleanup

* clippy

* run checks

* Cleanup

* reverse json order

---------

Co-authored-by: nathaniel <nathaniel.simard.42@gmail.com>
2023-11-22 11:50:27 -05:00
Nathaniel Simard 24014aca33
WGPU: Support elemwise operation fusion (#948) 2023-11-15 15:13:37 -05:00
Nathaniel Simard 96524d40a1
[Breaking] Refactor Backend Names (#904) 2023-10-29 18:27:49 -04:00
Nathaniel Simard 86db5dc392
Enable candle cuda (#887) 2023-10-23 11:00:54 -04:00
Louis Fortier-Dubois e4d9d67526
make candle available (#886) 2023-10-23 10:00:39 -04:00
Louis Fortier-Dubois aa90fe8efb
Refactor/burn benchmark (#829) 2023-09-28 09:38:21 -04:00