pub trait DeviceDataTransporter<SC, PB>where
SC: StarkProtocolConfig,
PB: ProverBackend<Val = SC::F, Challenge = SC::EF, Commitment = SC::Digest>,{
// Required methods
fn transport_pk_to_device(
&self,
mpk: &MultiStarkProvingKey<SC>,
) -> DeviceMultiStarkProvingKey<PB>;
fn transport_matrix_to_device(
&self,
matrix: &ColMajorMatrix<SC::F>,
) -> PB::Matrix;
fn transport_pcs_data_to_device(
&self,
pcs_data: &StackedPcsData<SC::F, SC::Digest>,
) -> PB::PcsData;
fn transport_matrix_from_device_to_host(
&self,
matrix: &PB::Matrix,
) -> ColMajorMatrix<SC::F>;
// Provided methods
fn transport_committed_trace_data_to_device(
&self,
committed_trace: &CommittedTraceData<CpuColMajorBackend<SC>>,
) -> CommittedTraceData<PB> { ... }
fn transport_proving_ctx_to_device(
&self,
ctx: &ProvingContext<CpuColMajorBackend<SC>>,
) -> ProvingContext<PB> { ... }
}Expand description
Trait to manage data transport of prover types from host to device.
Required Methods§
Sourcefn transport_pk_to_device(
&self,
mpk: &MultiStarkProvingKey<SC>,
) -> DeviceMultiStarkProvingKey<PB>
fn transport_pk_to_device( &self, mpk: &MultiStarkProvingKey<SC>, ) -> DeviceMultiStarkProvingKey<PB>
Transport the proving key to the device, filtering for only the provided air_ids.
fn transport_matrix_to_device( &self, matrix: &ColMajorMatrix<SC::F>, ) -> PB::Matrix
Sourcefn transport_pcs_data_to_device(
&self,
pcs_data: &StackedPcsData<SC::F, SC::Digest>,
) -> PB::PcsData
fn transport_pcs_data_to_device( &self, pcs_data: &StackedPcsData<SC::F, SC::Digest>, ) -> PB::PcsData
The commitment and prover_data are assumed to have been previously computed from the
trace.
Sourcefn transport_matrix_from_device_to_host(
&self,
matrix: &PB::Matrix,
) -> ColMajorMatrix<SC::F>
fn transport_matrix_from_device_to_host( &self, matrix: &PB::Matrix, ) -> ColMajorMatrix<SC::F>
Transport a device matrix to host. This should only be used for testing / debugging purposes.
Provided Methods§
fn transport_committed_trace_data_to_device( &self, committed_trace: &CommittedTraceData<CpuColMajorBackend<SC>>, ) -> CommittedTraceData<PB>
fn transport_proving_ctx_to_device( &self, ctx: &ProvingContext<CpuColMajorBackend<SC>>, ) -> ProvingContext<PB>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".