Skip to main content

CastConfig

Struct CastConfig 

Source
pub struct CastConfig {
    pub out_dtype: DType,
    pub sf_block: Option<(usize, usize)>,
    pub round_sf: bool,
}
Expand description

Cast configuration carried by ops that emit a typed output.

Inspired by TileKernels’ CastInputConfig / CastOutputConfig: a single dataclass that flows from the layer down to the kernel selector, so adding new quantized formats (FP8 e4m3, FP4 e2m1, blocked scaling) becomes a matter of populating fields rather than threading new flags through call sites.

Today only out_dtype is consulted by backends — the scaling-factor fields are reserved for future quantization passes (FP8 / blocked SF). Constructed once by the precision pass and embedded in fused ops.

Fields§

§out_dtype: DType

Destination dtype for the cast (fragment of the output tensor).

§sf_block: Option<(usize, usize)>

Scaling factor block size (rows, cols) for blocked quantization. None means no scaling factor (plain cast).

§round_sf: bool

Round scaling factors to powers of two (UE8M0 style).

Implementations§

Source§

impl CastConfig

Source

pub const fn plain(out_dtype: DType) -> CastConfig

Plain dtype cast with no scaling factor.

Source

pub fn is_noop(&self, in_dtype: DType) -> bool

True when the cast does no work (out matches input dtype).

Trait Implementations§

Source§

impl Clone for CastConfig

Source§

fn clone(&self) -> CastConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CastConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl PartialEq for CastConfig

Source§

fn eq(&self, other: &CastConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for CastConfig

Source§

impl StructuralPartialEq for CastConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.