pub struct CpuProviderBundleBuilder { /* private fields */ }Expand description
Construction-time builder for immutable CPU provider slots.
§Examples
use tenferro_cpu::{CpuBackendKind, CpuProviderBundle};
let bundle = CpuProviderBundle::builder(CpuBackendKind::default_compiled()).build()?;
assert!(bundle.shares_identity_with(&bundle.clone()));Implementations§
Source§impl CpuProviderBundleBuilder
impl CpuProviderBundleBuilder
Sourcepub fn gemm_provider(self, provider: Arc<dyn CpuGemmProvider>) -> Self
pub fn gemm_provider(self, provider: Arc<dyn CpuGemmProvider>) -> Self
Replace the GEMM-family provider slot.
Sourcepub fn engine_outer_grouped_gemm(self) -> Self
pub fn engine_outer_grouped_gemm(self) -> Self
Permit the engine to fan out grouped GEMM into concurrent single-job calls.
The installed GEMM provider must be safe for concurrent calls and must
honor crate::provider::ParallelMode::Sequential without creating inner
workers. Custom providers remain provider-owned unless this capability
is selected explicitly.
Sourcepub fn layout_transform_provider(
self,
provider: Arc<dyn CpuLayoutTransformProvider>,
) -> Self
pub fn layout_transform_provider( self, provider: Arc<dyn CpuLayoutTransformProvider>, ) -> Self
Replace the layout-materialization provider slot.
Sourcepub fn prefer_general_contraction_provider(
self,
provider: Arc<dyn CpuGeneralContractionProvider>,
) -> Self
pub fn prefer_general_contraction_provider( self, provider: Arc<dyn CpuGeneralContractionProvider>, ) -> Self
Install a preferred general-contraction provider.
Sourcepub fn require_general_contraction_provider(
self,
provider: Arc<dyn CpuGeneralContractionProvider>,
) -> Self
pub fn require_general_contraction_provider( self, provider: Arc<dyn CpuGeneralContractionProvider>, ) -> Self
Install a required general-contraction provider.
Sourcepub fn build(self) -> Result<CpuProviderBundle, CpuProviderBundleBuildError>
pub fn build(self) -> Result<CpuProviderBundle, CpuProviderBundleBuildError>
Validate the mandatory slots and freeze the bundle identity.
§Errors
Returns CpuProviderBundleBuildError when GEMM or layout is absent.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CpuProviderBundleBuilder
impl !RefUnwindSafe for CpuProviderBundleBuilder
impl Send for CpuProviderBundleBuilder
impl Sync for CpuProviderBundleBuilder
impl Unpin for CpuProviderBundleBuilder
impl UnsafeUnpin for CpuProviderBundleBuilder
impl !UnwindSafe for CpuProviderBundleBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more