Skip to main content

openvm_cpu_backend/
lib.rs

1#![allow(
2    clippy::type_complexity,
3    clippy::too_many_arguments,
4    clippy::needless_range_loop,
5    clippy::useless_conversion,
6    clippy::unnecessary_cast,
7    clippy::wrong_self_convention
8)]
9//! Row-major CPU prover backend for the SWIRL proof system.
10//!
11//! This crate provides [`CpuBackend`] and [`CpuDevice`], a prover backend that uses
12//! row-major matrix layout for the constraint evaluation hot path (logup_zerocheck).
13//! This gives significantly better cache locality and enables SIMD vectorization
14//! via plonky3's `PackedField`.
15//!
16//! At PCS boundaries (trace commitment, WHIR opening), the row-major matrices are
17//! converted to column-major format, which is a one-time cost.
18
19mod backend;
20mod device;
21pub mod error;
22pub mod logup_zerocheck;
23pub mod merkle;
24mod pcs_data;
25mod row_major_ops;
26mod stacked_reduction;
27mod two_adic;
28mod whir;
29
30pub use backend::*;
31pub use device::*;
32pub use error::CpuProverError;