pub struct DenseFoldPlan {
pub n_inputs: usize,
pub n_outputs: usize,
pub mac_count: u32,
pub dsp_budget: u32,
pub output_parallelism: u32,
pub input_parallelism: u32,
pub dsp_per_cycle: u32,
pub input_fold_factor: u32,
pub output_fold_factor: u32,
pub compute_cycles: u32,
pub fold_required: bool,
pub fits_dsp_budget: bool,
}Expand description
Deterministic time-multiplexing plan for dense layers that exceed a target one-DSP-per-MAC budget.
Fields§
§n_inputs: usize§n_outputs: usize§mac_count: u32§dsp_budget: u32§output_parallelism: u32§input_parallelism: u32§dsp_per_cycle: u32§input_fold_factor: u32§output_fold_factor: u32§compute_cycles: u32§fold_required: bool§fits_dsp_budget: boolTrait Implementations§
Source§impl Clone for DenseFoldPlan
impl Clone for DenseFoldPlan
Source§fn clone(&self) -> DenseFoldPlan
fn clone(&self) -> DenseFoldPlan
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 DenseFoldPlan
impl Debug for DenseFoldPlan
impl Eq for DenseFoldPlan
Source§impl PartialEq for DenseFoldPlan
impl PartialEq for DenseFoldPlan
Source§fn eq(&self, other: &DenseFoldPlan) -> bool
fn eq(&self, other: &DenseFoldPlan) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for DenseFoldPlan
Auto Trait Implementations§
impl Freeze for DenseFoldPlan
impl RefUnwindSafe for DenseFoldPlan
impl Send for DenseFoldPlan
impl Sync for DenseFoldPlan
impl Unpin for DenseFoldPlan
impl UnsafeUnpin for DenseFoldPlan
impl UnwindSafe for DenseFoldPlan
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<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§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.