pub enum Refusal {
Show 45 variants
StrideOrderOfAStatedLayout,
GatherOfATiledBinding(Tiling),
GatherWithLabels,
GatherRankMismatch {
mapped: usize,
rank: usize,
},
GatherOfAnUnknownAxis(Axis),
RankBelowLabels {
rank: usize,
block: usize,
},
UnlabelledBatchDims {
dims: usize,
axes: usize,
},
NoCoordinate,
WidthNotServed {
width: usize,
why: LineMisfit,
},
UncheckableVectorEdge,
GatherInnermostNotInLines,
GatherAxisAddressedTwice(Axis),
GridNotReadOffLevels {
units: u32,
plane: u32,
},
CubePastDevice {
units: u32,
most: u32,
},
PlanesUnavailable,
ImprecisePlaneDim {
min: u32,
max: u32,
},
Declined {
why: &'static str,
},
CubeShapePastDevice {
shape: (u32, u32, u32),
most: (u32, u32, u32),
},
NoUnits,
NoCubes,
GridPastDevice {
count: (u32, u32, u32),
most: (u32, u32, u32),
},
SharedMemoryPastDevice {
bytes: usize,
most: usize,
},
FillersWithoutBarriers {
fillers: u32,
},
BoxPastDescriptor {
axis: Axis,
edge: usize,
most: usize,
},
BoxSplitsStageBlocks {
axis: Axis,
rows: usize,
period: usize,
},
RowsNoDescriptorLands {
why: &'static str,
},
PagingOfAStatedLayout,
PagingOfAnUnlabelledAxis(Axis),
PagingOfOneDim(Axis),
PagesAlongALine(Axis),
PagingOfAnEmptyPool,
PagingMovedByRuns,
ScalesOfAPoolUnpaged,
IndexTableNotU32,
IndexTableRank {
keys: usize,
rank: usize,
},
IndexOfAStatedLayout,
IndexOfAnAxisNotSpanned(Axis),
IndexAlongALine(Axis),
IndexKeyedByItsAxis(Axis),
RunKeyedByMany(usize),
IndexKeysCutApart(Vec<Axis>),
IndexedAxisCut(Axis),
CodebookOfValuesNotIndices,
CodebookTableNotPlain,
CodebookTableShort {
entries: usize,
bits: usize,
},
}Expand description
Why a launch cannot run as described, or an operand cannot be bound to it.
Variants§
StrideOrderOfAStatedLayout
in_stride_order on a gathered or storage-tiled operand.
GatherOfATiledBinding(Tiling)
A gathered mapping over a storage-tiled binding.
GatherWithLabels
gathered combined with axes or batches.
GatherRankMismatch
The mapping addresses mapped dims but the operand has rank.
GatherOfAnUnknownAxis(Axis)
The mapping spans an axis the launched space does not have.
RankBelowLabels
The operand’s rank is smaller than its labelled block of dims.
UnlabelledBatchDims
More leading dims than batch axes to label them.
NoCoordinate
An operand must address at least one coordinate.
WidthNotServed
The buffer cannot be served width wide.
UncheckableVectorEdge
The innermost axis is served in vector lines but is not provably in bounds.
GatherInnermostNotInLines
A gathered mapping read in vector lines whose innermost physical axis does not step by the operand’s last logical axis at coefficient 1.
GatherAxisAddressedTwice(Axis)
A gathered mapping that reads axis off several physical axes: the operand is
storage-tiled, or reads one axis from two places.
GridNotReadOffLevels
A grid read off the levels (Grid::FromLevels) needs a
units level of one unit or the whole plane; this one holds units.
CubePastDevice
A cube of units units, past the most the device holds.
The kernel works in planes, and the device runs no plane operations.
ImprecisePlaneDim
The kernel needs one plane width, and the device’s varies between min and max.
Declined
A routine declines a problem it does not serve, for the reason why.
CubeShapePastDevice
A cube shaped shape along x, y and z, past the most the device spawns along one of them:
a cube legal in units can still be too long on an axis.
NoUnits
A cube with a zero axis, which spawns no units.
NoCubes
A grid with a zero axis, which spawns no cubes: the runtime returns without dispatching anything, and the outputs keep whatever they held.
GridPastDevice
A grid of count cubes along x, y and z, past the most the device launches along one of
them.
A cube holding bytes of shared memory, past the most the device gives one.
FillersWithoutBarriers
fillers planes are set aside to fill a walk’s stages, and the device has no barrier type
for the two roles to meet on.
BoxPastDescriptor
A TMA box edge past the descriptor’s per-axis limit most.
BoxSplitsStageBlocks
A TMA box lands its rows whole, one after the other, and the stage’s blocks split the rows
along axis, the innermost, or stack rows of them where the swizzle repeats every
period.
RowsNoDescriptorLands
A TMA box lands its rows dense, at most swizzled within one span, and the stage keeps them
as why says.
PagingOfAStatedLayout
indexed over a pool of pages on a gathered or
storage-tiled operand: a page is resolved coordinate by coordinate over a plain buffer’s
labelled dims.
PagingOfAnUnlabelledAxis(Axis)
indexed over a pool of pages naming an axis no dim of the
operand is labelled with.
PagingOfOneDim(Axis)
indexed over a pool of pages naming one dim for both the
pages and their positions.
PagesAlongALine(Axis)
indexed over a pool of pages with the pages along the
innermost dim, this axis’s: a line runs along it, so one line would span pages.
PagingOfAnEmptyPool
indexed over a pool of pages on a pool of no pages, or of
pages of no positions: there is no page for a table entry to read.
PagingMovedByRuns
indexed over a pool of pages on an operand moved by runs
(a bulk copy, a tensor map): the table resolves one line at a time.
ScalesOfAPoolUnpaged
indexed over a pool of pages whose scales span its pages
or positions unplaced: they are a pool of their own, placed by the same table before they
are stated.
IndexTableNotU32
indexed with a table that is not plain u32 entries,
one a line: an entry is a coordinate.
IndexTableRank
indexed with a table of rank dims keyed by keys
axes: a table holds one dim per key.
IndexOfAStatedLayout
indexed on a tensor map, or on a gathered, storage-tiled
or paged operand: an entry moves a window of a plain buffer’s labelled dims.
IndexOfAnAxisNotSpanned(Axis)
indexed placing an axis the operand does not span.
IndexAlongALine(Axis)
indexed placing the innermost axis, this one, which the
operand reads more than one value a line along: an entry is an element, and a line would
straddle two of them.
IndexKeyedByItsAxis(Axis)
indexed with no key, or keyed by the axis it places.
RunKeyedByMany(usize)
Indexing::Run keyed by this many axes: a run’s end is the next
entry along its one key.
IndexKeysCutApart(Vec<Axis>)
An indexed operand under a nest whose first level cutting one of these keys does not cut them all: the table is read at one step.
IndexedAxisCut(Axis)
An indexed operand under a nest that cuts the axis its entry places: a coordinate is the table’s to state, and a run is placed whole before any level cuts it.
CodebookOfValuesNotIndices
codebook on values not stored as indices
(Field::Index).
CodebookTableNotPlain
codebook with a table that is not a plain one-dim
buffer read one value a line.
CodebookTableShort
codebook with a table of entries, fewer than the
2^bits the indices name.
Trait Implementations§
impl Eq for Refusal
Source§impl Error for Refusal
impl Error for Refusal
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
impl StructuralPartialEq for Refusal
Auto Trait Implementations§
impl Freeze for Refusal
impl RefUnwindSafe for Refusal
impl Send for Refusal
impl Sync for Refusal
impl Unpin for Refusal
impl UnsafeUnpin for Refusal
impl UnwindSafe for Refusal
Blanket Implementations§
impl<T> AnyError for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>, which can then be
downcast into Box<dyn 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>, which 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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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
key and return true if they are equal.Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
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