From b9dd3b67473f8378b77a77743cc144c3d6f8fd75 Mon Sep 17 00:00:00 2001 From: John Guibas Date: Mon, 7 Oct 2024 19:17:20 -0700 Subject: [PATCH] feat: g16/plonk for network --- .github/workflows/suite.yml | 87 ++++++++++++++++++------------------- crates/perf/src/main.rs | 10 +++-- 2 files changed, 50 insertions(+), 47 deletions(-) diff --git a/.github/workflows/suite.yml b/.github/workflows/suite.yml index 72928bdff2..9c3b804a67 100644 --- a/.github/workflows/suite.yml +++ b/.github/workflows/suite.yml @@ -20,94 +20,93 @@ jobs: test-x86: name: ${{ matrix.workload.s3_folder }} (${{ matrix.workload.mode }}) runs-on: ${{ matrix.workload.mode == 'cuda' && fromJSON('["runs-on", "family=g6.16xlarge", "ami=ami-0a63dc9cb9e934ba3", "spot=false", "run-id=${{ github.run_id }}"]') || fromJSON('["runs-on", "runner=64cpu-linux-x64", "spot=false", "run-id=${{ github.run_id }}"]') }} - if: ${{ contains(github.event.head_commit.message, '(run-suite)') }} strategy: matrix: workload: # Fibonacci 17k # - { s3_folder: fibonacci-17k, mode: cpu } - - { s3_folder: fibonacci-17k, mode: cuda } - # - { s3_folder: fibonacci-17k, mode: network } + # - { s3_folder: fibonacci-17k, mode: cuda } + - { s3_folder: fibonacci-17k, mode: network } # SSZ Withdrawals # - { s3_folder: ssz-withdrawals, mode: cpu } - - { s3_folder: ssz-withdrawals, mode: cuda } - # - { s3_folder: ssz-withdrawals, mode: network } + # - { s3_folder: ssz-withdrawals, mode: cuda } + - { s3_folder: ssz-withdrawals, mode: network } # Tendermint # - { s3_folder: tendermint, mode: cpu } - - { s3_folder: tendermint, mode: cuda } - # - { s3_folder: tendermint, mode: network } + # - { s3_folder: tendermint, mode: cuda } + - { s3_folder: tendermint, mode: network } # RSP 20526624 # - { s3_folder: rsp-20526624, mode: cpu } - - { s3_folder: rsp-20526624, mode: cuda } - # - { s3_folder: rsp-20526624, mode: network } + # - { s3_folder: rsp-20526624, mode: cuda } + - { s3_folder: rsp-20526624, mode: network } # RSA # - { s3_folder: rsa, mode: cpu } - - { s3_folder: rsa, mode: cuda } - # - { s3_folder: rsa, mode: network } + # - { s3_folder: rsa, mode: cuda } + - { s3_folder: rsa, mode: network } # Regex # - { s3_folder: regex, mode: cpu } - - { s3_folder: regex, mode: cuda } - # - { s3_folder: regex, mode: network } + # - { s3_folder: regex, mode: cuda } + - { s3_folder: regex, mode: network } # Chess # - { s3_folder: chess, mode: cpu } - - { s3_folder: chess, mode: cuda } - # - { s3_folder: chess, mode: network } + # - { s3_folder: chess, mode: cuda } + - { s3_folder: chess, mode: network } # Tendermint # - { s3_folder: tendermint, mode: cpu } - - { s3_folder: tendermint, mode: cuda } - # - { s3_folder: tendermint, mode: network } + # - { s3_folder: tendermint, mode: cuda } + - { s3_folder: tendermint, mode: network } # RSP 20526624 # - { s3_folder: rsp-20526624, mode: cpu } - - { s3_folder: rsp-20526624, mode: cuda } - # - { s3_folder: rsp-20526624, mode: network } + # - { s3_folder: rsp-20526624, mode: cuda } + - { s3_folder: rsp-20526624, mode: network } # RSA # - { s3_folder: rsa, mode: cpu } - - { s3_folder: rsa, mode: cuda } - # - { s3_folder: rsa, mode: network } + # - { s3_folder: rsa, mode: cuda } + - { s3_folder: rsa, mode: network } # Regex # - { s3_folder: regex, mode: cpu } - - { s3_folder: regex, mode: cuda } - # - { s3_folder: regex, mode: network } + # - { s3_folder: regex, mode: cuda } + - { s3_folder: regex, mode: network } # JSON # - { s3_folder: json, mode: cpu } - - { s3_folder: json, mode: cuda } - # - { s3_folder: json, mode: network } + # - { s3_folder: json, mode: cuda } + - { s3_folder: json, mode: network } # Chess # - { s3_folder: chess, mode: cpu } - - { s3_folder: chess, mode: cuda } - # - { s3_folder: chess, mode: network } + # - { s3_folder: chess, mode: cuda } + - { s3_folder: chess, mode: network } # Blobstream 01j6z63fgafrc8jeh0k12gbtvw # - { s3_folder: blobstream-01j6z63fgafrc8jeh0k12gbtvw, mode: cpu } - - { s3_folder: blobstream-01j6z63fgafrc8jeh0k12gbtvw, mode: cuda } - # # - { s3_folder: blobstream-01j6z63fgafrc8jeh0k12gbtvw, mode: network } + # - { s3_folder: blobstream-01j6z63fgafrc8jeh0k12gbtvw, mode: cuda } + - { s3_folder: blobstream-01j6z63fgafrc8jeh0k12gbtvw, mode: network } # Blobstream 01j6z95bdme9svevmfyc974bja # - { s3_folder: blobstream-01j6z95bdme9svevmfyc974bja, mode: cpu } - - { s3_folder: blobstream-01j6z95bdme9svevmfyc974bja, mode: cuda } - # # - { s3_folder: blobstream-01j6z95bdme9svevmfyc974bja, mode: network } + # - { s3_folder: blobstream-01j6z95bdme9svevmfyc974bja, mode: cuda } + - { s3_folder: blobstream-01j6z95bdme9svevmfyc974bja, mode: network } # Blobstream 01j6z9ak0ke9srsppgywgke6fj # - { s3_folder: blobstream-01j6z9ak0ke9srsppgywgke6fj, mode: cpu } - - { s3_folder: blobstream-01j6z9ak0ke9srsppgywgke6fj, mode: cuda } - # - { s3_folder: blobstream-01j6z9ak0ke9srsppgywgke6fj, mode: network } + # - { s3_folder: blobstream-01j6z9ak0ke9srsppgywgke6fj, mode: cuda } + - { s3_folder: blobstream-01j6z9ak0ke9srsppgywgke6fj, mode: network } # Vector 01j6xsv35re96tkgyda115320t # - { s3_folder: vector-01j6xsv35re96tkgyda115320t, mode: cpu } - - { s3_folder: vector-01j6xsv35re96tkgyda115320t, mode: cuda } - # - { s3_folder: vector-01j6xsv35re96tkgyda115320t, mode: network } + # - { s3_folder: vector-01j6xsv35re96tkgyda115320t, mode: cuda } + - { s3_folder: vector-01j6xsv35re96tkgyda115320t, mode: network } # Vector 01j6xzy366ff5tbkzcrs8pma02 # - { s3_folder: vector-01j6xzy366ff5tbkzcrs8pma02, mode: cpu } - - { s3_folder: vector-01j6xzy366ff5tbkzcrs8pma02, mode: cuda } - # - { s3_folder: vector-01j6xzy366ff5tbkzcrs8pma02, mode: network } + # - { s3_folder: vector-01j6xzy366ff5tbkzcrs8pma02, mode: cuda } + - { s3_folder: vector-01j6xzy366ff5tbkzcrs8pma02, mode: network } # Vector 01j6y06de0fdaafemr8b1t69z3 # - { s3_folder: vector-01j6y06de0fdaafemr8b1t69z3, mode: cpu } - - { s3_folder: vector-01j6y06de0fdaafemr8b1t69z3, mode: cuda } - # - { s3_folder: vector-01j6y06de0fdaafemr8b1t69z3, mode: network } + # - { s3_folder: vector-01j6y06de0fdaafemr8b1t69z3, mode: cuda } + - { s3_folder: vector-01j6y06de0fdaafemr8b1t69z3, mode: network } # Raiko A7 10 # - { s3_folder: raiko-a7-10, mode: cpu } - - { s3_folder: raiko-a7-10, mode: cuda } - # - { s3_folder: raiko-a7-10, mode: network } + # - { s3_folder: raiko-a7-10, mode: cuda } + - { s3_folder: raiko-a7-10, mode: network } # OP Succinct # - { s3_folder: op-succinct-op-sepolia-range-17685896-17685897, mode: network } # - { s3_folder: op-succinct-op-sepolia-range-17985900-17985905, mode: network } - # - { s3_folder: op-succinct-op-sepolia-range-18129400-18129401, mode: network } + - { s3_folder: op-succinct-op-sepolia-range-18129400-18129401, mode: network } steps: - name: Checkout sources uses: actions/checkout@v4 @@ -131,9 +130,9 @@ jobs: toolchain: 1.81.0 args: --release -p sp1-perf -- --program workdir/program.bin --stdin workdir/stdin.bin --mode ${{ matrix.workload.mode }} env: - RUST_LOG: debug + RUST_LOG: info RUSTFLAGS: -Copt-level=3 -Ctarget-cpu=native RUST_BACKTRACE: 1 SP1_PROVER: ${{ matrix.workload.mode == 'cpu' && 'local' || matrix.workload.mode == 'cuda' && 'cuda' || matrix.workload.mode == 'network' && 'network' }} SP1_PRIVATE_KEY: ${{ secrets.SP1_PRIVATE_KEY }} - PROVER_NETWORK_RPC: https://43xadiwbrdkiquizwybgpzdhcu0pgvux.lambda-url.us-east-2.on.aws/ + PROVER_NETWORK_RPC: https://rpc-staging.succinct.xyz diff --git a/crates/perf/src/main.rs b/crates/perf/src/main.rs index 3db79b045c..631b1ea49c 100644 --- a/crates/perf/src/main.rs +++ b/crates/perf/src/main.rs @@ -155,10 +155,14 @@ fn main() { let prover = ProverClient::network(); let (_, _) = time_operation(|| prover.execute(&elf, stdin.clone())); - let (core_proof, _) = - time_operation(|| prover.prove(&pk, stdin).compressed().run().unwrap()); + let (proof, _) = + time_operation(|| prover.prove(&pk, stdin.clone()).groth16().run().unwrap()); - let (_, _) = time_operation(|| prover.verify(&core_proof, &vk)); + let (_, _) = time_operation(|| prover.verify(&proof, &vk)); + + let (proof, _) = time_operation(|| prover.prove(&pk, stdin).plonk().run().unwrap()); + + let (_, _) = time_operation(|| prover.verify(&proof, &vk)); } }; }