pub trait RoutedExpertProvider<B>where
B: GroupedNeuralBackend,{
type Error;
// Required methods
fn forward_grouped(
&mut self,
resident_bank: &mut B::GatedProductGroups,
request: RoutedExpertRequest<'_, B::Tensor>,
context: &<B::Tensor as Tensor>::Context,
) -> Result<B::Tensor, Self::Error>;
fn forward_relu2_routed(
&mut self,
resident_bank: &mut B::Relu2Groups,
request: RoutedExpertRequest<'_, B::Tensor>,
context: &<B::Tensor as Tensor>::Context,
) -> Result<B::Tensor, Self::Error>;
// Provided method
fn forward_compact_grouped(
&mut self,
resident_bank: &mut B::GatedProductGroups,
request: RoutedExpertRequest<'_, B::Tensor>,
context: &<B::Tensor as Tensor>::Context,
) -> Result<B::Tensor, Self::Error> { ... }
}Expand description
Runtime boundary for resident or independently cached routed experts.
Implementations own identity ordering, acquisition, leases, chunking, budgets, and residency reports. They keep every lease alive until the backend-native routed result is safe to return. The backend retains tensor storage, transfers, compact-bank construction, and execution kernels.
Required Associated Types§
Required Methods§
Sourcefn forward_grouped(
&mut self,
resident_bank: &mut B::GatedProductGroups,
request: RoutedExpertRequest<'_, B::Tensor>,
context: &<B::Tensor as Tensor>::Context,
) -> Result<B::Tensor, Self::Error>
fn forward_grouped( &mut self, resident_bank: &mut B::GatedProductGroups, request: RoutedExpertRequest<'_, B::Tensor>, context: &<B::Tensor as Tensor>::Context, ) -> Result<B::Tensor, Self::Error>
Executes one typed route batch while retaining its acquired resources.
Sourcefn forward_relu2_routed(
&mut self,
resident_bank: &mut B::Relu2Groups,
request: RoutedExpertRequest<'_, B::Tensor>,
context: &<B::Tensor as Tensor>::Context,
) -> Result<B::Tensor, Self::Error>
fn forward_relu2_routed( &mut self, resident_bank: &mut B::Relu2Groups, request: RoutedExpertRequest<'_, B::Tensor>, context: &<B::Tensor as Tensor>::Context, ) -> Result<B::Tensor, Self::Error>
Executes one ReLU-squared route batch through the same residency boundary.
Provided Methods§
Sourcefn forward_compact_grouped(
&mut self,
resident_bank: &mut B::GatedProductGroups,
request: RoutedExpertRequest<'_, B::Tensor>,
context: &<B::Tensor as Tensor>::Context,
) -> Result<B::Tensor, Self::Error>
fn forward_compact_grouped( &mut self, resident_bank: &mut B::GatedProductGroups, request: RoutedExpertRequest<'_, B::Tensor>, context: &<B::Tensor as Tensor>::Context, ) -> Result<B::Tensor, Self::Error>
Executes destination-local rows that were already expanded to one owner-local expert per row by the neutral expert exchange.
The compact request deliberately has route cardinality one; providers must not compare it with the architecture’s original top-k cardinality.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".