pub enum PlannerMode {
Disabled,
Remap,
Arena,
}Expand description
Selects the buffer-allocation strategy used by the planner entrypoint.
Disabledshort-circuits the planner and emits no replacements.Remapruns liveness-based pool reuse: groups buffers by(device, dtype, rounded_size)and lets disjoint-lifetime buffers share an underlying allocation.Arenapacks all plannable buffers into one or two large per-(device, copy-lane)arenas using a TLSF allocator and rewrites each logical buffer as aBuffer::viewinto its lane’s arena (tinygrad parity).
Variants§
Disabled
Skip the planner entirely. Each Buffer keeps its original allocation
and is freed by lazy Drop. Useful for memory-debugging baselines.
Remap
Liveness-based pool reuse: groups buffers by
(device, dtype, rounded_size) and lets disjoint-lifetime buffers
share an underlying allocation via Arc<Buffer> swap.
Arena
Tinygrad-style packing: pack every plannable buffer into one or two
per-(device, copy-lane) arenas using a TLSF allocator and rewrite
each logical buffer as a fresh Buffer::view into its lane’s arena.
Trait Implementations§
Source§impl Clone for PlannerMode
impl Clone for PlannerMode
Source§fn clone(&self) -> PlannerMode
fn clone(&self) -> PlannerMode
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PlannerMode
impl Debug for PlannerMode
Source§impl PartialEq for PlannerMode
impl PartialEq for PlannerMode
Source§fn eq(&self, other: &PlannerMode) -> bool
fn eq(&self, other: &PlannerMode) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for PlannerMode
impl Eq for PlannerMode
impl StructuralPartialEq for PlannerMode
Auto Trait Implementations§
impl Freeze for PlannerMode
impl RefUnwindSafe for PlannerMode
impl Send for PlannerMode
impl Sync for PlannerMode
impl Unpin for PlannerMode
impl UnsafeUnpin for PlannerMode
impl UnwindSafe for PlannerMode
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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