pub enum Field {
Quant(QuantValue),
Fp8(Fp8Format),
Float(FloatKind),
Index {
bits: usize,
},
ConvertedE2M1,
Placed {
value: QuantValue,
lifted: bool,
},
}Expand description
The slot one packed value occupies.
Variants§
Quant(QuantValue)
Fp8(Fp8Format)
Float(FloatKind)
Index
An index bits wide into a table, its codebook
(TileArgLaunch::codebook), read as raw bits.
ConvertedE2M1
An e2m1 code on a device that converts e2m1x2 itself: a word is read as four of them
and cast, the decode left to the compiler. What read_on makes of
Quant(E2M1) there.
Placed
A float code (e2m1, e4m3 or e5m2) on a device that emulates converting it: a word is
decoded as f16 pairs from its bits, lifted to its values, or, where lifted is false,
each placed lift short of its value for a reader whose factor carries the
lift (a tile read placed). What read_on makes of Quant(value) there,
lifted.
Implementations§
Source§impl Field
impl Field
Sourcepub fn read_on(self, client: &Client) -> Field
pub fn read_on(self, client: &Client) -> Field
This field as the device client reads it: a float code (e2m1, e4m3, e5m2) decoded
from its bits where the device emulates converting it anyway, so a reader’s factor can
carry the decode’s lift; an e2m1 code converted by the device where it converts
e2m1x2 itself; every other field as it is. A device’s own conversion is the one its
compiler lowers best, so where it exists a software decode is only ever slower.
Sourcepub fn of_scale(dtype: ScaleDtype) -> Field
pub fn of_scale(dtype: ScaleDtype) -> Field
The field a scale of dtype occupies in its stored word.
Trait Implementations§
impl Copy for Field
impl Eq for Field
Source§impl From<QuantValue> for Field
impl From<QuantValue> for Field
Source§fn from(value: QuantValue) -> Self
fn from(value: QuantValue) -> Self
impl StructuralPartialEq for Field
Auto Trait Implementations§
impl Freeze for Field
impl RefUnwindSafe for Field
impl Send for Field
impl Sync for Field
impl Unpin for Field
impl UnsafeUnpin for Field
impl UnwindSafe for Field
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,
impl<T> CubeComptime for T
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