Skip to content
Snippets Groups Projects
Commit fd081eed authored by STEVAN Antoine's avatar STEVAN Antoine :crab:
Browse files

more work on benchmarks (!214)

continuation of
- !193
- !212
- !213

## changelog
- add `.env.nu` to define `RESULTS_DIR` and import `benchmarks` module with Nuenv
- add `scripts/get-arkworks-curves.nu` to get information about Arkworks elliptic curves
- refactor log Nushell commands to `./log.nu`
- add `./benchmarks/run.nu`
- add `./benchmarks/plot.nu`
- use latest `a.stevan/nob.rs`
- add "benchmark" command to `make.rs`
- make all Rust benchmarking functions return benches to be run at once with newest PLNK
- update the README and tweak plots
- changed the structure of the output:
  - all in the root
  - CPUs are identified by a hash
  - the digests of the following items are in the name of the benches
    - Git commit
    - CPU information
    - source code
- create trusted setups of the perfect size in Semi-AVID with `zk::nb_elements_in_setup`
- introduce error bars in the bar charts

## todo
- [x] move `./run.nu` and `./plot.nu` to `./benchmarks/` and replace `./benchmarks/run.nu`
- [x] add back the "_hash_" mechanism to `run.nu`
- [x] add cryptographic protocols back to `run.nu` and `plot.nu`

## results
### basic operations
| field operations                                                              | group operations                                                              |
| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| ![field](/uploads/7fbc322b16e235bda339315f77c0d8f9/field.png)                 | ![group](/uploads/c462cf10bb75b5ddfe9380af5a3fb591/group.png)                 |
| ![field.simple](/uploads/46e2a38f6b7594d5383050eb64bc03ec/field.simple.png)   | ![group.simple](/uploads/4a6812ea260711d104d539286e4ba838/group.simple.png)   |
| ![field.complex](/uploads/5548dac5f20b29ec1b26314f1278ecb5/field.complex.png) | ![group.complex](/uploads/33e95be47203508c20627136f80f3e82/group.complex.png) |
---

### linear algebra
![linalg-transpose](/uploads/e3be89736c61dd0b46fbad19cf3503c8/linalg-transpose.png)
![linalg-multiply](/uploads/563fa0383a2d86f49d2bdf401af2aa37/linalg-multiply.png)
![linalg-inverse](/uploads/9a71d52c9864d310456a375dba5f900d/linalg-inverse.png)
---

### trusted setups
![setup](/uploads/d4f5cb66a6dad68b7139938a899779c5/setup.png)
![commit](/uploads/e0b23450667f6584ebb3225744d08163/commit.png)
---

### FEC
![fec-encode](/uploads/a1032bde0d29de82ad3d9a0f4de13f3c/fec-encode.png)
![fec-recode](/uploads/6f1a0612182b72cab5f49e99b5c2e206/fec-recode.png)
![fec-decode](/uploads/34138ac2d689ba2cced1fedab1f873f4/fec-decode.png)
---

### Protocols
![protocols-b507904-k8-n16](/uploads/b20b58bb40540912178f4ab63cc5870e/protocols-b507904-k8-n16.png)
![protocols-b130023424-k8-n16](/uploads/19e2a08efa5f19cc75fbd98f369ec11f/protocols-b130023424-k8-n16.png)
parent 41bb6408
Branches
No related tags found
1 merge request!214more work on benchmarks
Pipeline #9323 passed