pub struct TileSpec {
pub projection: Projection,
pub boundaries: SmallVec<[Option<Boundary>; 6]>,
pub units: usize,
pub storage: Storage,
pub stored_tiles: Vec<(Axis, usize)>,
pub delivery: Delivery,
pub paging: Option<Paging>,
/* private fields */
}Expand description
The comptime half of an operand: its axis mapping, edge checks, packing, storage and delivery.
Fields§
§projection: ProjectionHow this operand’s logical axes address its buffer’s physical ones.
boundaries: SmallVec<[Option<Boundary>; 6]>Out-of-bounds handling per coordinate axis; None or an empty list is unchecked.
units: usizeThe launch’s units per cube, 0 when unknown.
storage: StorageWhat this operand’s storage tiles are to the windows it is read through.
stored_tiles: Vec<(Axis, usize)>How the buffer is stored: its stated storage tiles, finest first, as its
StoragePartitioning reads back. Empty for a plain buffer.
What a load of it covers is the kernel’s to pick
(VectorTile::new).
delivery: DeliveryWho moves this operand into a stage (delivery).
paging: Option<Paging>The axes a page table resolves where the buffer is a pool of pages read as sequences
(TileArgLaunch::indexed); None for a buffer read where
it lies.
Implementations§
Source§impl TileSpec
impl TileSpec
Sourcepub fn new(projection: Projection) -> Self
pub fn new(projection: Projection) -> Self
An operand’s spec from its mapping, unchecked, plain, untiled, cube size unknown.
Sourcepub fn boundaries(self, boundaries: &[Option<Boundary>]) -> Self
pub fn boundaries(self, boundaries: &[Option<Boundary>]) -> Self
This spec with one boundary mode per coordinate axis; panics on any other count.
Sourcepub fn boundary(self, policy: BoundaryPolicy) -> Self
pub fn boundary(self, policy: BoundaryPolicy) -> Self
This spec checked as policy says.
Sourcepub fn packed(self, field: impl Into<Field>) -> Self
pub fn packed(self, field: impl Into<Field>) -> Self
This spec with its binding holding u32 words of field-wide values.
Sourcepub fn delivery(self, delivery: Delivery) -> Self
pub fn delivery(self, delivery: Delivery) -> Self
This spec with its stages moved by delivery: each unit its own lines, landed when the fill
returns or after it, or one unit the whole stage in bulk. The kernel does not change; the
fill does.
§Panics
Tma, which moves a tensor map rather than a tensor, and
Procedural, which moves nothing.
Sourcepub fn is_checked(&self) -> bool
pub fn is_checked(&self) -> bool
Whether this operand has bounds checking enabled.
Trait Implementations§
impl Eq for TileSpec
impl StructuralPartialEq for TileSpec
Auto Trait Implementations§
impl Freeze for TileSpec
impl RefUnwindSafe for TileSpec
impl Send for TileSpec
impl Sync for TileSpec
impl Unpin for TileSpec
impl UnsafeUnpin for TileSpec
impl UnwindSafe for TileSpec
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
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> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
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