pub struct TileConfig {
pub grid_x: usize,
pub grid_y: usize,
pub per_core_m: usize,
pub per_core_n: usize,
pub in0_block_w: usize,
pub out_subblock_h: usize,
pub out_subblock_w: usize,
}Expand description
A tiling / blocking config for the blocked matmul kernel — the knobs an autotuner searches, in 32×32
tiles. best_tile_config fills this from a cost model; the vendor hand-tunes the equivalent.
Fields§
§grid_x: usizeSite columns (each owns per_core_n output tile-columns).
grid_y: usizeSite rows (each owns per_core_m output tile-rows).
per_core_m: usizeOutput tile-rows computed per site.
per_core_n: usizeOutput tile-cols computed per site.
in0_block_w: usizeInner block width — contraction tiles streamed per block (bigger ⇒ more reuse per DRAM read).
out_subblock_h: usizeAccumulator-resident output sub-block height.
out_subblock_w: usizeAccumulator-resident output sub-block width.
Implementations§
Source§impl TileConfig
impl TileConfig
Trait Implementations§
Source§impl Clone for TileConfig
impl Clone for TileConfig
Source§fn clone(&self) -> TileConfig
fn clone(&self) -> TileConfig
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 TileConfig
impl Debug for TileConfig
Source§impl PartialEq for TileConfig
impl PartialEq for TileConfig
impl Copy for TileConfig
impl Eq for TileConfig
impl StructuralPartialEq for TileConfig
Auto Trait Implementations§
impl Freeze for TileConfig
impl RefUnwindSafe for TileConfig
impl Send for TileConfig
impl Sync for TileConfig
impl Unpin for TileConfig
impl UnsafeUnpin for TileConfig
impl UnwindSafe for TileConfig
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.§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.