diff --git a/.github/runs-on.yml b/.github/runs-on.yml index b9350639..edd198b3 100644 --- a/.github/runs-on.yml +++ b/.github/runs-on.yml @@ -7,5 +7,4 @@ images: runners: gpu-nvidia: cpu: [32, 64] - family: ["g6"] - hdd: 200 \ No newline at end of file + family: ["g6"] \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 44e1c503..12baafb2 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -12,7 +12,8 @@ jobs: "runs-on", "runner=32cpu-linux-x64", "run-id=${{ github.run_id }}", - "spot=false" + "spot=false", + "disk=large" ] steps: diff --git a/Dockerfile.server b/Dockerfile.server index 4cddad25..6c853b16 100644 --- a/Dockerfile.server +++ b/Dockerfile.server @@ -1,5 +1,5 @@ # Start with a base image that includes CUDA -FROM nvidia/cuda:12.5.1-devel-ubuntu22.04 AS builder +FROM nvidia/cuda:12.9.0-devel-ubuntu22.04 AS builder # Install necessary packages RUN apt-get update && apt-get install -y \ @@ -39,6 +39,10 @@ RUN mkdir -p /root/.ssh && chmod 700 /root/.ssh \ && ssh-keyscan github.com >> /root/.ssh/known_hosts \ && git config --global url."git@github.com:".insteadOf "https://github.com/" +RUN nvcc --version + +RUN df -h + # Build the Rust project RUN --mount=type=ssh CARGO_NET_GIT_FETCH_WITH_CLI=true cargo build -p moongate-server --release diff --git a/Dockerfile.toolchain b/Dockerfile.toolchain index 832af742..d0e0b148 100644 --- a/Dockerfile.toolchain +++ b/Dockerfile.toolchain @@ -1,5 +1,5 @@ # Start with a base image that includes CUDA -FROM nvidia/cuda:12.5.1-devel-ubuntu22.04 AS builder +FROM nvidia/cuda:12.9.0-devel-ubuntu22.04 AS builder # Install necessary packages RUN apt-get update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y \ @@ -15,6 +15,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" +RUN nvcc --version + # Set the working directory in the container WORKDIR /usr/src/app diff --git a/core/build.rs b/core/build.rs index ec5f0531..48b6d3c5 100644 --- a/core/build.rs +++ b/core/build.rs @@ -188,7 +188,10 @@ fn main() { cc_builder.flag("--expt-relaxed-constexpr"); cc_builder.flag("-gencode=arch=compute_86,code=sm_86"); cc_builder.flag("-gencode=arch=compute_89,code=sm_89"); - cc_builder.flag("-gencode=arch=compute_89,code=compute_89"); + cc_builder.flag("-gencode=arch=compute_90,code=sm_90"); + cc_builder.flag("-gencode=arch=compute_100,code=sm_100"); + cc_builder.flag("-gencode=arch=compute_120,code=sm_120"); + cc_builder.flag("-gencode=arch=compute_120,code=compute_120"); env::set_var("DEP_SPPARK_ROOT", "../sppark"); if let Some(include) = env::var_os("DEP_SPPARK_ROOT") { diff --git a/core/src/challenger/grinding_challenger.rs b/core/src/challenger/grinding_challenger.rs index 4d462a26..a444a9aa 100644 --- a/core/src/challenger/grinding_challenger.rs +++ b/core/src/challenger/grinding_challenger.rs @@ -136,12 +136,23 @@ mod tests { // Clone the original challenger because after grinding on device the internal state // of `challenger` will change. let mut original_challenger = challenger.clone(); - let result = challenger.grind_device(bits, &stream); + let result = challenger.grind(bits); assert!(original_challenger.check_witness(bits, result)); - let mut original_challenger_2 = challenger_2.clone(); - let result_2 = challenger_2.grind_device(bits, &stream); + let mut original_challenger_2: p3_challenger::DuplexChallenger< + BabyBear, + p3_poseidon2::Poseidon2< + BabyBear, + p3_poseidon2::Poseidon2ExternalMatrixGeneral, + p3_baby_bear::DiffusionMatrixBabyBear, + 16, + 7, + >, + 16, + 8, + > = challenger_2.clone(); + let result_2 = challenger_2.grind(bits); assert!(original_challenger_2.check_witness(bits, result_2)); diff --git a/core/src/fri/open.rs b/core/src/fri/open.rs index 42be9070..154fba26 100644 --- a/core/src/fri/open.rs +++ b/core/src/fri/open.rs @@ -7,7 +7,7 @@ use sp1_core_machine::utils::log2_strict_usize; use sp1_stark::Com; use p3_baby_bear::BabyBear; -use p3_challenger::{CanObserve, CanSample, CanSampleBits}; +use p3_challenger::{CanObserve, CanSample, CanSampleBits, GrindingChallenger}; use p3_field::{AbstractExtensionField, AbstractField, TwoAdicField}; use p3_fri::{BatchOpening, CommitPhaseProofStep, FriProof, QueryProof}; use sp1_stark::Challenger; @@ -84,7 +84,7 @@ impl FriOpeningProver { .in_scope(|| commit_phase(committer, input, log_max_height, challenger)); let pow_witness = tracing::debug_span!("pow witness") - .in_scope(|| challenger.grind_device(config.proof_of_work_bits, main_stream)); + .in_scope(|| challenger.grind(config.proof_of_work_bits)); let query_indices: Vec = (0..config.num_queries).map(|_| challenger.sample_bits(log_max_height)).collect(); diff --git a/perf/run_s3.sh b/perf/run_s3.sh index 3ee561ba..ea9432cc 100644 --- a/perf/run_s3.sh +++ b/perf/run_s3.sh @@ -19,6 +19,7 @@ aws s3 cp s3://sp1-testing-suite/$s3_path/stdin.bin stdin.bin export RUST_LOG=debug export FIX_CORE_SHAPES=true export FIX_RECURSION_SHAPES=true +export SP1_ALLOW_DEPRECATED_HOOKS=true # Run moongate-perf RUST_BACKTRACE=full cargo run -p moongate-perf --release -- --program-path program.bin --stdin-path stdin.bin --stage $stage --trace nvtx