Skip to main content

ComputeBackend

Trait ComputeBackend 

Source
pub trait ComputeBackend<InP: Payload, OutP: Payload> {
    type Model: ComputeModel<InP, OutP>;
    type Error;
    type ModelDescriptor<'desc>
       where Self: 'desc;

    // Required methods
    fn capabilities(&self) -> BackendCapabilities;
    fn load_model<'desc>(
        &self,
        desc: Self::ModelDescriptor<'desc>,
    ) -> Result<Self::Model, Self::Error>;
}
Expand description

A dyn-free engine that constructs models and reports capabilities.

Required Associated Types§

Source

type Model: ComputeModel<InP, OutP>

Concrete model type (no trait objects).

Source

type Error

Backend-specific error.

Source

type ModelDescriptor<'desc> where Self: 'desc

Backend-chosen borrowed descriptor used to load a model.

Examples:

  • on std: type ModelDescriptor<'desc> = &'desc ModelArtifact;
  • on no_std: type ModelDescriptor<'desc> = &'desc [u8];

Required Methods§

Source

fn capabilities(&self) -> BackendCapabilities

Capability report.

Source

fn load_model<'desc>( &self, desc: Self::ModelDescriptor<'desc>, ) -> Result<Self::Model, Self::Error>

Load a model from a descriptor.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl ComputeBackend<Tensor<u32, TEST_TENSOR_ELEMENT_COUNT, 2>, Tensor<u32, TEST_TENSOR_ELEMENT_COUNT, 2>> for TestTensorBackend