Skip to main content

CpuUninitLayoutTransformProvider

Trait CpuUninitLayoutTransformProvider 

Source
pub unsafe trait CpuUninitLayoutTransformProvider: CpuLayoutTransformProvider {
    // Required method
    unsafe fn materialize_into_uninit(
        &self,
        context: &CpuExecutionContext<'_>,
        input: &TensorRead<'_>,
        intent: CpuLayoutTransformIntent,
        conjugate: bool,
        output_bytes: &mut [MaybeUninit<u8>],
    ) -> Result<CpuProviderOutcome>;
}
Expand description

Provider for engine-owned tensor materialization into uninitialized bytes.

§Safety

Implementors assert that CpuUninitLayoutTransformProvider::materialize_into_uninit writes every element of output_bytes before returning CpuProviderOutcome::Executed; partial writes make the caller’s assume_init undefined behavior. Implementations must never read the destination.

§Examples

use tenferro_cpu::provider::CpuUninitLayoutTransformProvider;

Required Methods§

Source

unsafe fn materialize_into_uninit( &self, context: &CpuExecutionContext<'_>, input: &TensorRead<'_>, intent: CpuLayoutTransformIntent, conjugate: bool, output_bytes: &mut [MaybeUninit<u8>], ) -> Result<CpuProviderOutcome>

Materialize one validated input into uninitialized bytes.

§Safety

Must write every element of output_bytes (a compact column-major destination of the input shape for CpuLayoutTransformIntent::CanonicalColumnMajor) before returning Executed; partial writes are UB at the caller’s assume_init. The destination is never read.

§Errors

Returns tenferro_tensor::Error::BackendSource or tenferro_tensor::Error::BackendFailure when execution fails. A detected inconsistency in engine-attested layout or range metadata is returned as tenferro_tensor::Error::Validation. Unsupported layouts use CpuProviderOutcome::Unsupported instead.

§Examples
use tenferro_cpu::provider::{CpuLayoutTransformIntent, CpuProviderOutcome, CpuUninitLayoutTransformProvider};
use tenferro_cpu::CpuExecutionContext;
use tenferro_tensor::TensorRead;
use std::mem::MaybeUninit;

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§