pub trait BackendRegistry: Send + Sync {
// Required methods
fn register_compute_backend(
&mut self,
name: &str,
backend: Box<dyn ComputeBackend>,
) -> Result<()>;
fn register_weight_loader(
&mut self,
name: &str,
loader: Box<dyn WeightLoader>,
) -> Result<()>;
fn get_compute_backend(&self, name: &str) -> Option<&dyn ComputeBackend>;
fn get_weight_loader(&self, name: &str) -> Option<&dyn WeightLoader>;
fn find_best_compute_backend(
&self,
requirements: &BackendRequirements,
) -> Option<&dyn ComputeBackend>;
fn list_backend_names(&self) -> (Vec<String>, Vec<String>);
}Expand description
Backend registry for managing multiple backends
Required Methods§
Sourcefn register_compute_backend(
&mut self,
name: &str,
backend: Box<dyn ComputeBackend>,
) -> Result<()>
fn register_compute_backend( &mut self, name: &str, backend: Box<dyn ComputeBackend>, ) -> Result<()>
Register compute backend
Sourcefn register_weight_loader(
&mut self,
name: &str,
loader: Box<dyn WeightLoader>,
) -> Result<()>
fn register_weight_loader( &mut self, name: &str, loader: Box<dyn WeightLoader>, ) -> Result<()>
Register weight loader
Sourcefn get_compute_backend(&self, name: &str) -> Option<&dyn ComputeBackend>
fn get_compute_backend(&self, name: &str) -> Option<&dyn ComputeBackend>
Get compute backend by name
Sourcefn get_weight_loader(&self, name: &str) -> Option<&dyn WeightLoader>
fn get_weight_loader(&self, name: &str) -> Option<&dyn WeightLoader>
Get weight loader by name
Sourcefn find_best_compute_backend(
&self,
requirements: &BackendRequirements,
) -> Option<&dyn ComputeBackend>
fn find_best_compute_backend( &self, requirements: &BackendRequirements, ) -> Option<&dyn ComputeBackend>
Find best compute backend for requirements