pub unsafe trait CpuUninitGemmProvider: CpuGemmProvider {
// Required method
unsafe fn gemm_into_uninit(
&self,
context: &CpuExecutionContext<'_>,
request: CpuGemmUninitRequest<'_, '_>,
output_bytes: &mut [MaybeUninit<u8>],
) -> Result<CpuProviderOutcome>;
}Expand description
Provider for validated GEMM-family requests that fully overwrite their
destination (only beta == 0 accumulations).
§Safety
Implementors assert that CpuUninitGemmProvider::gemm_into_uninit writes
every logical output element before returning
CpuProviderOutcome::Executed; partial writes make the caller’s
assume_init undefined behavior. Implementations must never read the
destination. This trait is only invoked for beta == 0 accumulations.
§Examples
use tenferro_cpu::provider::CpuUninitGemmProvider;Required Methods§
Sourceunsafe fn gemm_into_uninit(
&self,
context: &CpuExecutionContext<'_>,
request: CpuGemmUninitRequest<'_, '_>,
output_bytes: &mut [MaybeUninit<u8>],
) -> Result<CpuProviderOutcome>
unsafe fn gemm_into_uninit( &self, context: &CpuExecutionContext<'_>, request: CpuGemmUninitRequest<'_, '_>, output_bytes: &mut [MaybeUninit<u8>], ) -> Result<CpuProviderOutcome>
Execute one validated full-overwrite GEMM into uninitialized bytes.
§Safety
Must write every element of the destination represented by
output_bytes (per request.output_layout()) before returning
Executed; partial writes are UB at the caller’s assume_init. The
destination is never read. Invoked only for beta == 0 accumulations.
§Errors
Returns tenferro_tensor::Error::BackendSource or
tenferro_tensor::Error::BackendFailure when the provider runtime
fails. A detected inconsistency in engine-attested request metadata is
returned as tenferro_tensor::Error::Validation. Unsupported
capabilities use CpuProviderOutcome::Unsupported instead.
§Examples
use tenferro_cpu::provider::{CpuGemmUninitRequest, CpuProviderOutcome, CpuUninitGemmProvider};
use tenferro_cpu::CpuExecutionContext;
use std::mem::MaybeUninit;Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".