mod global;
use slop_alloc::mem::CopyError;
use sp1_core_machine::riscv::RiscvAir;
use sp1_gpu_cudart::{DeviceMle, TaskScope};
use crate::{CudaTracegenAir, F};
impl CudaTracegenAir<F> for RiscvAir<F> {
fn supports_device_main_tracegen(&self) -> bool {
match self {
Self::Global(chip) => chip.supports_device_main_tracegen(),
_ => false,
}
}
async fn generate_trace_device(
&self,
input: &Self::Record,
output: &mut Self::Record,
scope: &TaskScope,
) -> Result<DeviceMle<F>, CopyError> {
match self {
Self::Global(chip) => chip.generate_trace_device(input, output, scope).await,
_ => unimplemented!(),
}
}
}