Skip to main content

CudaTracegenAir

Trait CudaTracegenAir 

Source
pub trait CudaTracegenAir<F: Field>: MachineAir<F> {
    // Provided methods
    fn supports_device_preprocessed_tracegen(&self) -> bool { ... }
    fn generate_preprocessed_trace_device(
        &self,
        program: &Self::Program,
        scope: &TaskScope,
    ) -> impl Future<Output = Result<Option<DeviceMle<F>>, CopyError>> + Send { ... }
    fn supports_device_main_tracegen(&self) -> bool { ... }
    fn generate_trace_device(
        &self,
        input: &Self::Record,
        output: &mut Self::Record,
        scope: &TaskScope,
    ) -> impl Future<Output = Result<DeviceMle<F>, CopyError>> + Send { ... }
}
Expand description

An AIR that potentially supports device trace generation over the given field.

Provided Methods§

Source

fn supports_device_preprocessed_tracegen(&self) -> bool

Whether this AIR supports preprocessed trace generation on the device.

Source

fn generate_preprocessed_trace_device( &self, program: &Self::Program, scope: &TaskScope, ) -> impl Future<Output = Result<Option<DeviceMle<F>>, CopyError>> + Send

Generate the preprocessed trace on the device.

§Panics

Panics if unsupported. See CudaTracegenAir::supports_device_preprocessed_tracegen.

Source

fn supports_device_main_tracegen(&self) -> bool

Whether this AIR supports main trace generation on the device.

Source

fn generate_trace_device( &self, input: &Self::Record, output: &mut Self::Record, scope: &TaskScope, ) -> impl Future<Output = Result<DeviceMle<F>, CopyError>> + Send

Generate the main trace on the device.

§Panics

Panics if unsupported. See CudaTracegenAir::supports_device_main_tracegen.

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.

Implementations on Foreign Types§

Source§

impl CudaTracegenAir<KoalaBear> for RiscvAir<SP1Field>

Source§

fn supports_device_main_tracegen(&self) -> bool

Source§

async fn generate_trace_device( &self, input: &Self::Record, output: &mut Self::Record, scope: &TaskScope, ) -> Result<DeviceMle<SP1Field>, CopyError>

Source§

impl CudaTracegenAir<KoalaBear> for GlobalChip

Source§

fn supports_device_main_tracegen(&self) -> bool

Source§

async fn generate_trace_device( &self, input: &Self::Record, output: &mut Self::Record, scope: &TaskScope, ) -> Result<DeviceMle<SP1Field>, CopyError>

Source§

impl CudaTracegenAir<KoalaBear> for BaseAluChip

Source§

impl CudaTracegenAir<KoalaBear> for ExtAluChip

Source§

impl CudaTracegenAir<KoalaBear> for ConvertChip

Source§

impl CudaTracegenAir<KoalaBear> for Poseidon2LinearLayerChip

Source§

impl CudaTracegenAir<KoalaBear> for Poseidon2SBoxChip

Source§

impl CudaTracegenAir<KoalaBear> for PrefixSumChecksChip

Source§

fn supports_device_main_tracegen(&self) -> bool

Source§

async fn generate_trace_device( &self, input: &Self::Record, _: &mut Self::Record, scope: &TaskScope, ) -> Result<DeviceMle<SP1Field>, CopyError>

Source§

impl CudaTracegenAir<KoalaBear> for SelectChip

Source§

impl<const DEGREE: usize> CudaTracegenAir<KoalaBear> for Poseidon2WideChip<DEGREE>

Source§

impl<const DEGREE: usize, const VAR_EVENTS_PER_ROW: usize> CudaTracegenAir<KoalaBear> for RecursionAir<SP1Field, DEGREE, VAR_EVENTS_PER_ROW>

Implementors§