pub struct PlanDesc {
pub streaming: bool,
pub fused: bool,
pub sites: Option<usize>,
pub mesh: Option<(usize, usize)>,
pub grid: (usize, usize),
pub per_site: (usize, usize),
pub block: Option<BlockShape>,
pub split: bool,
}Expand description
The plan a ledger row printed.
Fields§
§streaming: bool§fused: bool§sites: Option<usize>The site count the program ran on when it is not the whole mesh (the single-core example, a streamed program with fewer items than sites).
mesh: Option<(usize, usize)>The deployment mesh (x, y) the program was placed onto, when the row records it (a vendor example runs
on the simulator’s whole grid; an IR-lowered program prints mesh=).
grid: (usize, usize)(n_y, n_x) blocks.
per_site: (usize, usize)(per_site_m, per_site_n).
block: Option<BlockShape>§split: boolThe row ran the SPLIT movement packing: the second operand’s loader shares an engine with the store, so a block’s output write overlaps the next block’s reads. Recorded because it changes the per-engine movement the pace depends on — a reconstruction that drops it cannot tell two measured plans apart.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PlanDesc
impl<'de> Deserialize<'de> for PlanDesc
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Ord for PlanDesc
impl Ord for PlanDesc
Source§impl PartialOrd for PlanDesc
impl PartialOrd for PlanDesc
impl Eq for PlanDesc
impl StructuralPartialEq for PlanDesc
Auto Trait Implementations§
impl Freeze for PlanDesc
impl RefUnwindSafe for PlanDesc
impl Send for PlanDesc
impl Sync for PlanDesc
impl Unpin for PlanDesc
impl UnsafeUnpin for PlanDesc
impl UnwindSafe for PlanDesc
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,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
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.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.