Commit Graph

32 Commits

Author SHA1 Message Date
Sylvain Benner c4e512d176
Create doc feature in all burn crates and use them for docs.rs build (#1212) 2024-02-01 12:47:46 -05:00
dependabot[bot] 22d97e5a59
Bump web-time from 0.2.4 to 1.0.0 (#1199)
Bumps [web-time](https://github.com/daxpedda/web-time) from 0.2.4 to 1.0.0.
- [Release notes](https://github.com/daxpedda/web-time/releases)
- [Changelog](https://github.com/daxpedda/web-time/blob/main/CHANGELOG.md)
- [Commits](https://github.com/daxpedda/web-time/compare/v0.2.4...v1.0.0)

---
updated-dependencies:
- dependency-name: web-time
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-31 11:02:35 -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
Sylvain Benner fab344c565
[burn-compute] Add persistent cache for autotune in std environment (#1087)
* Add new persistant cache to tune cache

* Serialize autotune presistent cache using vectors

* Properly load and save the persistent cachegf

* Print an error when autotune cache cannot be loaded

* Add tests for persistent cache

Use the same logic as the already implemented tests

* Cargo fmt

* Silence clippy check about implementing default for CliMetricsRenderer

* Add burn-compute feature flag autotune-persistent-cache

This allow burn-compute to remain no-std compliant

* debug

* Git ignore .dir-locals.el files

* Update documentation for compute_checksum implementation

* Expect messages should be an expectation not an  error message

* Replace silent eprintln! by log:warn! macro

* Remove clippy allow attribute

* Fix typos in documentation

* Move creation of additional client into the test fn that requires it

* Create compute clients in test function to test different checksum

* Revert tui as a default feature in burn-train cargo file

* Use structs for autotune cache entries

* Unpack InMemoryCacheEntry for even better readibility

* Remove uneeded checksum_checked field in no-std env

* Make sure that autotune cache directoy exists

* Add test for autotune cache file path creation

* Add prefix device info to autotune cache file

* Use new compute in autotune cache integration tests

This prevents race condition by always reloading the cache fir
each test.

* Move burn-compute rand depdencencie in dev-dependencies

* Avoid creation of formatted msg except in case of actual error

* Fix burn-compute unused code warning in no-std env
2024-01-05 14:19:33 -05:00
Jantxu 70eda6b34e
use web-time in case of wasm (#1060) 2023-12-12 13:47:10 -05:00
David Chavez 71d3c1d142
chore(infra): Share some properties across workspace (#1039) 2023-12-12 09:39:07 -05:00
Louis Fortier-Dubois 8fc52113bc
Chore/bump v12 (#1048) 2023-12-04 10:47:54 -05:00
Louis Fortier-Dubois 3088c466a5
patch 0.11.1 (#1047) 2023-12-04 10:18:30 -05:00
Nathaniel Simard ab1b5890f5
Chore/release (#1031) 2023-12-01 14:33:28 -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
Louis Fortier-Dubois e2a3329997
Feat/wgpu/autotune compute (#906) 2023-10-29 16:44:59 -04:00
Nathaniel Simard 233922d60c
Chore: Bump version for next release (#900) 2023-10-24 19:31:13 -04:00
Alex Errant 9f2bc599b8
Add a `sync` feature to common, core, and tensor (#893) 2023-10-24 14:32:01 -04:00
Nathaniel Simard 84df5554b1
Use const seed (#894) 2023-10-24 09:53:11 -04:00
Louis Fortier-Dubois d96f73da0a
Feat/compute/autotune (#861)
* wip autotune compute

* too much generics

* wip

* megawip

* in progress

* first test passes

* first test passes

* fixed test

* refactor for cache hit and miss

* cleanup and fixes

* doc and stuff

* doc and stuff

* clippy

* format

* remove lifetime

* cleanup operation

* wip

* wip

* compiles

* wip mutable borrow

* refactor with autotune server

* wip tune benchmark

* test passes

* fix autotune key

* cache hit miss tests

* refactor wgpu to match burn-compute

* better operation execution

* cleanup & refactor

* test for parametered kernel

* fmt

* fmt

* clippy

* allow clippy

* fix no-std

* fmt

* review and ci

* Fix CI

* delete dummy benchmarks again

---------

Co-authored-by: nathaniel <nathaniel.simard.42@gmail.com>
2023-10-23 11:29:44 -04:00
Dilshod Tadjibaev e2a17e4295
Add image classification web demo with WebGPU, CPU backends (#840) 2023-10-05 10:29:13 -04:00
Louis Fortier-Dubois 163e48c969
wgpu: Yet another (faster) matmul (#836) 2023-10-02 14:05:53 -04:00
Damien Elmes e363813911
Use thread-local RNG to generate IDs (#839)
We've been exploring dividing our data set up into multiple batches,
and training those batches in parallel. I noticed that performance did
not scale with core count, and after some digging, found that this was
mainly due to the Mutex being used to generate IDs. With the following
change, training across 16 cores went from 21s to 4.2s.

thread_rng was previously discussed on #703, but I don't believe that
applies here, as this is just used for UUID creation.
2023-10-02 14:05:27 -04:00
Nathaniel Simard ca787d6446
Feat/async read (#833) 2023-09-28 17:09:58 -04:00
Louis Fortier-Dubois aa90fe8efb
Refactor/burn benchmark (#829) 2023-09-28 09:38:21 -04:00
Nathaniel Simard ac4adb54ea
Burn compute (#809) 2023-09-18 19:56:53 -04:00
Nathaniel Simard af0be5cfeb
Chore: bump version (#777) 2023-09-06 12:15:13 -04:00
Dilshod Tadjibaev 8448611908
License fixes (#648) 2023-08-16 12:45:35 -04:00
Nathaniel Simard 0a5a2d729a
chore: bump version for next release (#533) 2023-07-26 09:46:28 -04:00
Dilshod Tadjibaev eda241f8cf
Add missing docs and enable missing_docs warn lint (#420) 2023-06-21 14:12:13 -04:00
Dilshod Tadjibaev 834c7ecc1f
Clean up cargo descriptions and formatting (#403) 2023-06-15 09:20:53 -04:00
Dilshod Tadjibaev 05763e1878
Bump version to the next minor to indicate dev (#344) 2023-05-10 18:02:08 -04:00
Nathaniel Simard 29eecd6383
Prepare next release (#335) 2023-05-06 10:32:23 -04:00
nathaniel ef92d8dd1a fix: missing info in cargo.toml 2023-03-21 09:56:34 -04:00
Nathaniel Simard 4e28e2a776
chore: prepare release v0.6.0 (#246) 2023-03-21 09:47:37 -04:00
Nathaniel Simard e6e7f4de42
feat: inplace tensor api. (#187) 2023-03-01 10:55:51 -05:00
Dilshod Tadjibaev fb925acc73
Make burn and burn-core packages no_std compatible (#168) (#173)
* Make burn-ndarray and burn-tensor no_std compatible (#168)
2023-02-25 09:38:01 -05:00