Skip to main content

CpuGemmProvider

Trait CpuGemmProvider 

Source
pub trait CpuGemmProvider:
    Debug
    + Send
    + Sync
    + 'static {
    // Required methods
    fn execution_capabilities(&self) -> CpuProviderExecutionCapabilities;
    fn gemm(
        &self,
        context: &CpuExecutionContext<'_>,
        request: CpuGemmRequest<'_, '_, '_>,
    ) -> Result<CpuProviderOutcome>;
    fn strided_batched_gemm(
        &self,
        context: &CpuExecutionContext<'_>,
        request: CpuGemmRequest<'_, '_, '_>,
    ) -> Result<CpuProviderOutcome>;
    fn grouped_gemm(
        &self,
        context: &CpuExecutionContext<'_>,
        request: CpuGroupedGemmRequest<'_, '_, '_>,
    ) -> Result<CpuProviderOutcome>;

    // Provided method
    fn uninit_provider(&self) -> Option<&dyn CpuUninitGemmProvider> { ... }
}
Expand description

Provider for validated GEMM-family requests.

§Examples

Trait objects are supported directly:

use tenferro_cpu::provider::CpuGemmProvider;

Required Methods§

Source

fn execution_capabilities(&self) -> CpuProviderExecutionCapabilities

Return immutable count, placement, and fan-out capabilities.

This declaration must describe controls actually applied and restored by the provider adapter around each call. Merely discovering a runtime symbol is insufficient. A provider bundle samples this method exactly once during construction and keeps that snapshot for its lifetime; the returned contract must therefore remain valid for the provider object.

Source

fn gemm( &self, context: &CpuExecutionContext<'_>, request: CpuGemmRequest<'_, '_, '_>, ) -> Result<CpuProviderOutcome>

Execute one validated GEMM.

§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.

Source

fn strided_batched_gemm( &self, context: &CpuExecutionContext<'_>, request: CpuGemmRequest<'_, '_, '_>, ) -> Result<CpuProviderOutcome>

Execute one validated strided-batched GEMM.

§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.

Source

fn grouped_gemm( &self, context: &CpuExecutionContext<'_>, request: CpuGroupedGemmRequest<'_, '_, '_>, ) -> Result<CpuProviderOutcome>

Execute one validated grouped GEMM.

§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.

Provided Methods§

Source

fn uninit_provider(&self) -> Option<&dyn CpuUninitGemmProvider>

Return the structural full-overwrite witness for this provider.

Returns Some(self) only for types that implement CpuUninitGemmProvider via an unsafe impl, so a Some witness is structural proof that the provider asserted the full-overwrite destination contract. Defaults to None (opted out).

§Examples
use tenferro_cpu::provider::CpuGemmProvider;

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§