TraceGenModule

Trait TraceGenModule 

Source
pub trait TraceGenModule<GC: GlobalTraceGenCtx, PB: ProverBackend>: Send + Sync {
    type ModuleSpecificCtx<'a>;

    // Required method
    fn generate_proving_ctxs(
        &self,
        child_vk: &GC::ChildVerifyingKey,
        proofs: &GC::MultiProof,
        preflights: &GC::PreflightRecords,
        ctx: &Self::ModuleSpecificCtx<'_>,
        required_heights: Option<&[usize]>,
    ) -> Option<Vec<AirProvingContext<PB>>>;
}
Expand description

Trait for generating the trace matrices, on device, for a given AIR module. The module has a view of all proofs being verified as well as the global preflight records from each proof.

This function should be expected to be called in parallel, one logical thread per module.

Required Associated Types§

Required Methods§

Source

fn generate_proving_ctxs( &self, child_vk: &GC::ChildVerifyingKey, proofs: &GC::MultiProof, preflights: &GC::PreflightRecords, ctx: &Self::ModuleSpecificCtx<'_>, required_heights: Option<&[usize]>, ) -> Option<Vec<AirProvingContext<PB>>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl TraceGenModule<GlobalCtxGpu, GenericGpuBackend<BabyBearPoseidon2HashScheme>> for BatchConstraintModule

Source§

type ModuleSpecificCtx<'a> = (Option<&'a CachedTraceRecord>, Arc<PowerCheckerCpuTraceGenerator<2, POW_CHECKER_HEIGHT>>, &'a GpuDeviceCtx)

Source§

impl TraceGenModule<GlobalCtxGpu, GenericGpuBackend<BabyBearPoseidon2HashScheme>> for GkrModule

Source§

type ModuleSpecificCtx<'a> = (&'a ExpBitsLenGpuTraceGenerator, &'a GpuDeviceCtx)

Source§

impl TraceGenModule<GlobalCtxGpu, GenericGpuBackend<BabyBearPoseidon2HashScheme>> for ProofShapeModule

Source§

type ModuleSpecificCtx<'a> = (Arc<PowerCheckerGpuTraceGenerator<2, POW_CHECKER_HEIGHT>>, &'a [usize], &'a GpuDeviceCtx)

Source§

impl TraceGenModule<GlobalCtxGpu, GenericGpuBackend<BabyBearPoseidon2HashScheme>> for StackingModule

Source§

type ModuleSpecificCtx<'a> = GpuDeviceCtx

Source§

impl TraceGenModule<GlobalCtxGpu, GenericGpuBackend<BabyBearPoseidon2HashScheme>> for TranscriptModule

Source§

type ModuleSpecificCtx<'a> = (&'a Vec<[MontyField31<BabyBearParameters>; 16]>, &'a Vec<[MontyField31<BabyBearParameters>; 16]>, &'a GpuDeviceCtx)

Source§

impl TraceGenModule<GlobalCtxGpu, GenericGpuBackend<BabyBearPoseidon2HashScheme>> for WhirModule

Source§

type ModuleSpecificCtx<'a> = (&'a ExpBitsLenGpuTraceGenerator, &'a GpuDeviceCtx)

Source§

impl<SC: StarkProtocolConfig<F = F>> TraceGenModule<GlobalCtxCpu, CpuBackend<SC>> for BatchConstraintModule

Source§

impl<SC: StarkProtocolConfig<F = F>> TraceGenModule<GlobalCtxCpu, CpuBackend<SC>> for GkrModule

Source§

impl<SC: StarkProtocolConfig<F = F>> TraceGenModule<GlobalCtxCpu, CpuBackend<SC>> for ProofShapeModule

Source§

type ModuleSpecificCtx<'a> = (Arc<PowerCheckerCpuTraceGenerator<2, POW_CHECKER_HEIGHT>>, &'a [usize])

Source§

impl<SC: StarkProtocolConfig<F = F>> TraceGenModule<GlobalCtxCpu, CpuBackend<SC>> for StackingModule

Source§

impl<SC: StarkProtocolConfig<F = F>> TraceGenModule<GlobalCtxCpu, CpuBackend<SC>> for TranscriptModule

Source§

type ModuleSpecificCtx<'a> = (&'a Vec<[MontyField31<BabyBearParameters>; 16]>, &'a Vec<[MontyField31<BabyBearParameters>; 16]>)

Source§

impl<SC: StarkProtocolConfig<F = F>> TraceGenModule<GlobalCtxCpu, CpuBackend<SC>> for WhirModule