pub enum SpatialReject {
Show 17 variants
Parse(String),
Unrecognized {
matmul: MatmulReject,
elementwise: ElementwiseReject,
reduction: ReductionReject,
},
NotLowered(&'static str),
MissingCompute {
needed: &'static str,
target: &'static str,
},
MissingPrecision {
needed: Precision,
target: &'static str,
},
MissingHandshake {
needed: HandshakeKind,
target: &'static str,
},
MissingInterconnect {
needed: Interconnect,
target: &'static str,
},
NoLegalTiling {
rows_t: usize,
cols_t: usize,
k_tiles: usize,
acc_tiles: usize,
sites: usize,
},
LocalMemExceeded {
site: Site,
needed_bytes: usize,
budget_bytes: usize,
},
AccTilesExceeded {
needed: usize,
available: usize,
acc: AccPolicy,
},
TooManyEngines {
site: Site,
needed: usize,
available: u8,
},
GroupCountMismatch {
group: GroupId,
counts: Vec<(Site, usize)>,
},
WrongPhase {
pass: &'static str,
expected: &'static str,
found: Phase,
},
Unverified(ChoreoFault),
Invalid(IrViolation),
ScalarFrontEnd(String),
NotQ8_0 {
weight: String,
},
}Expand description
Why a program cannot become (or stay) a spatial program on a target — typed, never a silent fallback.
Variants§
Parse(String)
Unrecognized
NotLowered(&'static str)
MissingCompute
MissingPrecision
MissingHandshake
MissingInterconnect
NoLegalTiling
LocalMemExceeded
AccTilesExceeded
TooManyEngines
GroupCountMismatch
WrongPhase
Unverified(ChoreoFault)
Invalid(IrViolation)
ScalarFrontEnd(String)
The scalar (decision-fabric) front end refused the body in its own words — an op outside the compare/arith/branch family, a runtime-bound slice, a value kind it does not carry.
NotQ8_0
A weight the deployment stores Q8_0 whose declared values are not an int8 multiple of a scale per 32 rows.
Trait Implementations§
Source§impl Clone for SpatialReject
impl Clone for SpatialReject
Source§fn clone(&self) -> SpatialReject
fn clone(&self) -> SpatialReject
Returns a duplicate of the value. Read more
1.0.0 · 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 SpatialReject
impl Debug for SpatialReject
Source§impl From<IrViolation> for SpatialReject
impl From<IrViolation> for SpatialReject
Source§fn from(v: IrViolation) -> Self
fn from(v: IrViolation) -> Self
Converts to this type from the input type.
Source§impl From<SpatialReject> for ComposeReject
impl From<SpatialReject> for ComposeReject
Source§fn from(v: SpatialReject) -> Self
fn from(v: SpatialReject) -> Self
Converts to this type from the input type.
Source§impl From<SpatialReject> for TpReject
impl From<SpatialReject> for TpReject
Source§fn from(e: SpatialReject) -> Self
fn from(e: SpatialReject) -> Self
Converts to this type from the input type.
Source§impl PartialEq for SpatialReject
impl PartialEq for SpatialReject
impl StructuralPartialEq for SpatialReject
Auto Trait Implementations§
impl Freeze for SpatialReject
impl RefUnwindSafe for SpatialReject
impl Send for SpatialReject
impl Sync for SpatialReject
impl Unpin for SpatialReject
impl UnsafeUnpin for SpatialReject
impl UnwindSafe for SpatialReject
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<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.