---
# System prepended metadata

title: zkVM Benchmark - 250910
tags: [grandine, epf-6]

---

# zkVM Benchmark - 250910

## tl;dr

**Pico**
- **`execute` mode**: Works for three cases but not the mainnet one.
- **`prove` mode in CPU**: No case succeed. Even the simplest test case just halt in the midst of the run. Have reported to Brevis team.
- **`prove` mode in GPU**: Not sure if Pico has GPU mode and made an inquiry to the dev team.

**r0vm**
- **`execute` mode**: Works for all test cases
- **`prove` mode in CPU**: No case succeed. Even the simplest test case run indefinitely long. Have run it for 5 hrs and still running.
- **`prove` mode in GPU**: Complete the first two test cases and error out on the remaining two.

---

## General

For CPU, the following benchmark is run on:

- chip: AMD Ryzen 7 PRO 4750G with Radeon Graphics
  - cores: 8
  - thread(s) per core: 2
- mem: 48 GB
- OS: Ubuntu 24.04.3 LTS

But it seems zkVM only use a single core to run guest code during execution mode.

Source:
- For r0vm: https://github.com/jimmychu0807/grandine-zk/tree/jc/r0vm
- For pico: https://github.com/jimmychu0807/grandine-zk/tree/jc/pico


|  | r0vm | pico |
| -------- | -------- | -------- |
| `execute` mode  | All completed  | The last test case failed and [reported](https://github.com/brevis-network/pico/issues/48). See below. |
| `prove` mode (CPU) | All test cases ran indefinitely long | Proving for the simplest case just halted and [reported](https://github.com/brevis-network/pico/issues/49). |
| `prove` mode (GPU) | First two test cases completed. See below. | Not sure if pico has GPU mode and [inquired](https://github.com/brevis-network/pico/issues/50). |


## `execute` Mode

Column headers:
- **consensus-spec-test** - consensus spec tests mainnet electra empty block transition
- **pectra-wo-epoch** - pectra-devnet-6 without epoch transition
- **pectra-wo-epoch** - pectra-devnet-6 with epoch transition
- **mainnet-wo-epoch** - mainnet without epoch transition

The following results are generated from using execution mode, no zk-proof is generated. Generating zk proof will take **a lot longer**.

For **r0vm**

|  | consensus-spec-test | pectra-wo-epoch | pectra-w-epoch | mainnet-wo-epoch |
| -------- | -------- | -------- |--|--|
| time elapsed | 5.59s | 117.43s | 927.43s | 3066.35s |
| execution cycles | 241,696,768 | 4,909,432,832 | 39,038,484,480 | 116,489,453,568 |

For **pico**

|  | consensus-spec-test | pectra-wo-epoch | pectra-w-epoch | mainnet-wo-epoch |
| -------- | -------- | -------- |--|--|
| time elapsed | 33.62s | 528.43s | 2592.21s | Panicked with max memory exceeded. [Read explanation](https://github.com/brevis-network/pico/issues/48#issuecomment-3286930946).|
| execution cycles | 164,850,074 | 2,555,459,575 | 12,685,893,340 | n.a. |

## `prove` Mode

For r0vm, benchmark is done using RiscZero Bonsai network (with GPU capability).

|  | consensus-spec-test | pectra-wo-epoch | pectra-w-epoch | mainnet-wo-epoch |
| -------- | -------- | -------- |--|--|
| r0vm     | r0vm     | r0vm     |r0vm |r0vm |
| time elapsed | 58.12s | 469.90s | error out | error out |

Both errors fail with error logs:

```
Error: Bonsai prover workflow [1963d036-7b19-4856-835b-3a7321abad31] exited: FAILED err: INTERNAL_ERROR

Stack backtrace:
   0: anyhow::error::<impl anyhow::Error>::msg
             at /home/jimmychu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.99/src/backtrace.rs:27:14
   1: <risc0_zkvm::host::client::prove::bonsai::BonsaiProver as risc0_zkvm::host::client::prove::Prover>::prove_with_ctx
             at /home/jimmychu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/risc0-zkvm-3.0.1/src/host/client/prove/bonsai.rs:154:17
   2: risc0_zkvm::host::client::prove::Prover::prove
             at /home/jimmychu/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/risc0-zkvm-3.0.1/src/host/client/prove/mod.rs:78:14
   3: <zkvm_host::backend::risc0::Vm as zkvm_host::backend::VmBackend>::prove
             at ./zkvm/host/src/backend/risc0.rs:101:33
```