pub struct Runtime { /* private fields */ }
Expand description
The runtime wraps a multitude of inference models with batching support, and support for time-limited execution.
Implementations§
Source§impl Runtime
impl Runtime
Sourcepub fn add_inferer(&mut self, inferer: impl Inferer + 'static + Send) -> BrainId
pub fn add_inferer(&mut self, inferer: impl Inferer + 'static + Send) -> BrainId
Add a new inferer to this runtime. The new infererer will be at the end of the inference queue when using timed inference.
Sourcepub fn push(
&mut self,
brain: BrainId,
agent: AgentId,
state: State<'_>,
) -> Result<(), CervoError>
pub fn push( &mut self, brain: BrainId, agent: AgentId, state: State<'_>, ) -> Result<(), CervoError>
Queue the state
to brain
for agent
, to be included in the next inference batch.
Sourcepub fn infer_single(
&mut self,
brain_id: BrainId,
state: State<'_>,
) -> Result<Response<'_>, CervoError>
pub fn infer_single( &mut self, brain_id: BrainId, state: State<'_>, ) -> Result<Response<'_>, CervoError>
Run a single item through the specific brain
. If there’s
pending data for the brain
, this’ll have some extra overhead
for new allocations.
Sourcepub fn run(
&mut self,
) -> Result<HashMap<BrainId, HashMap<AgentId, Response<'_>>>, CervoError>
pub fn run( &mut self, ) -> Result<HashMap<BrainId, HashMap<AgentId, Response<'_>>>, CervoError>
Executes all models with queued data.
Sourcepub fn run_for(
&mut self,
duration: Duration,
) -> Result<HashMap<BrainId, HashMap<AgentId, Response<'_>>>, CervoError>
pub fn run_for( &mut self, duration: Duration, ) -> Result<HashMap<BrainId, HashMap<AgentId, Response<'_>>>, CervoError>
Executes all models with queued data. Will attempt to keep total time below the provided duration, but due to noise or lack of samples might miss the deadline. See the note in the root.
Sourcepub fn output_shapes(
&self,
brain: BrainId,
) -> Result<&[(String, Vec<usize>)], CervoError>
pub fn output_shapes( &self, brain: BrainId, ) -> Result<&[(String, Vec<usize>)], CervoError>
Retrieve the output shapes for the provided brain.
Sourcepub fn input_shapes(
&self,
brain: BrainId,
) -> Result<&[(String, Vec<usize>)], CervoError>
pub fn input_shapes( &self, brain: BrainId, ) -> Result<&[(String, Vec<usize>)], CervoError>
Retrieve the input shapes for the provided brain.
Sourcepub fn clear(&mut self) -> Result<(), CervoError>
pub fn clear(&mut self) -> Result<(), CervoError>
Clear all models and all related data. Will error (after clearing all data) if there was queued items that are now orphaned.
Sourcepub fn remove_inferer(&mut self, brain: BrainId) -> Result<(), CervoError>
pub fn remove_inferer(&mut self, brain: BrainId) -> Result<(), CervoError>
Clear a model and related data. Will error (after clearing all data) if there was queued items that are now orphaned.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Runtime
impl !RefUnwindSafe for Runtime
impl Send for Runtime
impl Sync for Runtime
impl Unpin for Runtime
impl !UnwindSafe for Runtime
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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>
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