pub struct CubeMmaConfig {
pub a_type: StorageType,
pub b_type: StorageType,
pub cd_type: StorageType,
pub m_granularity: u32,
pub m_max: u32,
pub n_granularity: u32,
pub n_max: u32,
pub k_granularity: u32,
pub k_max: u32,
pub units_per_block: Option<u32>,
}Expand description
Shape and element types of a valid flexible MMA configuration
Only Vulkan for now, but this should also be usable for wgmma/xmma on datacenter CUDA.
Actual matrix size must be multiple of granularity and <= max.
Fields§
§a_type: StorageTypeElement of the A matrix
b_type: StorageTypeElement of the B matrix
cd_type: StorageTypeElement of the C/D matrices
m_granularity: u32The granularity of the matrix on the m dimension
m_max: u32The maximum value for m
n_granularity: u32The size of the matrix on the n dimension
n_max: u32The maximum value for n
k_granularity: u32The size of the matrix on the k dimension
k_max: u32The maximum value for k
units_per_block: Option<u32>The number of units that must be in the cube for this configuration to be valid.
None means it’s always valid (but might still have an optimal value).
Trait Implementations§
Source§impl Clone for CubeMmaConfig
impl Clone for CubeMmaConfig
Source§fn clone(&self) -> CubeMmaConfig
fn clone(&self) -> CubeMmaConfig
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for CubeMmaConfig
Source§impl Debug for CubeMmaConfig
impl Debug for CubeMmaConfig
Source§impl<'de> Deserialize<'de> for CubeMmaConfig
impl<'de> Deserialize<'de> for CubeMmaConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for CubeMmaConfig
Source§impl Hash for CubeMmaConfig
impl Hash for CubeMmaConfig
Source§impl Ord for CubeMmaConfig
impl Ord for CubeMmaConfig
Source§fn cmp(&self, other: &CubeMmaConfig) -> Ordering
fn cmp(&self, other: &CubeMmaConfig) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for CubeMmaConfig
impl PartialEq for CubeMmaConfig
Source§impl PartialOrd for CubeMmaConfig
impl PartialOrd for CubeMmaConfig
Source§impl Serialize for CubeMmaConfig
impl Serialize for CubeMmaConfig
impl StructuralPartialEq for CubeMmaConfig
Auto Trait Implementations§
impl Freeze for CubeMmaConfig
impl RefUnwindSafe for CubeMmaConfig
impl Send for CubeMmaConfig
impl Sync for CubeMmaConfig
impl Unpin for CubeMmaConfig
impl UnsafeUnpin for CubeMmaConfig
impl UnwindSafe for CubeMmaConfig
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
Compare self to
key and return true if they are equal.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>
Converts
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>
Converts
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