> For the complete documentation index, see [llms.txt](https://devs.novanet.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://devs.novanet.xyz/jolt-atlas-zkml/benchmarks.md).

# Benchmarks

We benchmarked a multi-classification model across different zkML projects:

| Project    | Latency | Notes                        |
| ---------- | ------- | ---------------------------- |
| zkml-jolt  | \~0.7s  |                              |
| mina-zkml  | \~2.0s  |                              |
| ezkl       | 4–5s    |                              |
| deep-prove | N/A     | doesn't support gather op    |
| zk-torch   | N/A     | doesn't support reduceSum op |

We also benchmarked an MLP model:

| Project    | Latency | Notes     |
| ---------- | ------- | --------- |
| zkml-jolt  | \~800ms |           |
| deep-prove | \~200ms | lacks MCC |

#### Running benchmarks

```bash
# enter zkml-jolt-core
cd zkml-jolt-core

# multi-class benchmark
cargo run -r -- profile --name multi-class --format chrome

# sentiment benchmark
cargo run -r -- profile --name sentiment --format chrome

# mlp benchmark
cargo run -r -- profile --name mlp --format chrome
```

When using `--format chrome`, the benchmark generates trace files (trace-.json) viewable in Chrome's tracing tool:

1. Open Chrome and go to `chrome://tracing`.
2. Load the generated trace file to visualize performance.

Alternatively, use `--format default` to view performance times directly in the terminal.

Both models (preprocessing, proving, and verifying) take \~600ms–800ms.
