Skip to content

Commit

Permalink
chore: add profiling command to benchmark docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jonathanpwang committed Jan 7, 2025
1 parent 4d18009 commit 82a289f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 273 deletions.
271 changes: 0 additions & 271 deletions ci/scripts/metric_unify/main.py

This file was deleted.

18 changes: 18 additions & 0 deletions docs/crates/benchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,24 @@ The `OUTPUT_PATH` environmental variable shouuld be set to the file path where y

To run a benchmark with the leaf aggregation, add `--features aggregation` to the above command.

### Markdown Output

To generate a markdown summary of the collected metrics, first install `openvm-prof`:

```bash
cd <repo_root>/crates/prof
cargo install --force --path .
```

Then run the command:

```bash
openvm-prof --json-paths $OUTPUT_PATH
```

This will generate a markdown file to the same path as $OUTPUT_PATH but with a `.md` extension. The `--json-paths` argument can take multiple files, comma separated.
There is also an optional `--prev-json-paths` argument to compare the metrics with a previous run.

### Circuit Flamegraphs

While traditional flamegraphs generated from instrumenting a proving binary run on the host machine are useful,
Expand Down
9 changes: 7 additions & 2 deletions docs/repo/layout.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ The main components of the repository are:
- [Documentation](#documentation)
- [Benchmarks](#benchmarks)
- [CI](#ci)
- [Profiling](#profiling)
- [CLI](#cli)
- [SDK](#sdk)
- [Toolchain](#toolchain)
Expand Down Expand Up @@ -33,13 +34,17 @@ Benchmark guest programs and benchmark scripts are in [`openvm-benchmarks`](../.

Scripts for CI use and metrics post-processing are in [`ci`](../../ci).

### Profiling

- [`openvm-prof`](../../crates/prof): Tools to post-process metrics emitted by the VM for performance profiling.

### CLI

Command-line binary to compile, execute, and prove guest programs is in [`cli`](../../crates/cli).

### SDK

- [`sdk`](../../crates/sdk): The developer SDK for the VM. It includes the OpenVM aggregation programs to support continuations for all VMs in the framework, and well as a local aggregation scheduling implementation. It provides the final interface for proving an arbitrary program for a target VM. The SDK includes functionality to generate the final onchain SNARK verifier contract.
- [`openvm-sdk`](../../crates/sdk): The developer SDK for the VM. It includes the OpenVM aggregation programs to support continuations for all VMs in the framework, and well as a local aggregation scheduling implementation. It provides the final interface for proving an arbitrary program for a target VM. The SDK includes functionality to generate the final onchain SNARK verifier contract.

### Toolchain

Expand Down Expand Up @@ -122,4 +127,4 @@ The toolchain, ISA, and VM are simultaenously extendable. All non-system functio
- [`openvm-pairing-circuit`](../../extensions/pairing/circuit): Circuit extension for optimal Ate pairing on BN254 and BLS12-381 curves.
- [`openvm-pairing-transpiler`](../../extensions/pairing/transpiler): Transpiler extension for optimal Ate pairing on BN254 and BLS12-381.
- [`openvm-pairing-guest`](../../extensions/pairing/guest): Guest library with optimal Ate pairing on BN254 and BLS12-381 and associated constants. Also includes elliptic curve operations for VM runtime with the `halo2curves` feature gate.
- [`openvm-pairing-tests`](../../extensions/pairing/tests): Integration tests for the pairing extension.
- [`openvm-pairing-tests`](../../extensions/pairing/tests): Integration tests for the pairing extension.

0 comments on commit 82a289f

Please sign in to comment.