Struct MslDialect

Source
pub struct MslDialect {}

Trait Implementations§

Source§

impl Clone for MslDialect

Source§

fn clone(&self) -> MslDialect

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for MslDialect

Source§

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

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

impl Default for MslDialect

Source§

fn default() -> MslDialect

Returns the “default value” for a type. Read more
Source§

impl DialectBindings<MslDialect> for MslDialect

Source§

fn compile_kernel_signature( f: &mut Formatter<'_>, kernel_name: &str, tensor_maps: &[Id], buffers: &[Binding<Self>], scalars: &[(Elem<Self>, usize)], flags: &Flags, ) -> Result

Source§

impl DialectCubeBuiltins<MslDialect> for MslDialect

Source§

fn builtin_rules(flags: &CubeIndexFlags) -> CubeIndexFlags

Depending on the dialect available built-in variables the inclusion rules might change. For instance in metal we have a built-in for the Unit plane position so we don’t rely on other builtins.

Source§

fn compile_absolute_pos_tuple_computation(_f: &mut Formatter<'_>) -> Result

Source§

fn compile_absolute_pos_base_name(f: &mut Formatter<'_>) -> Result

Source§

fn compile_absolute_pos(f: &mut Formatter<'_>) -> Result

Source§

fn compile_absolute_pos_x(f: &mut Formatter<'_>) -> Result

Source§

fn compile_absolute_pos_y(f: &mut Formatter<'_>) -> Result

Source§

fn compile_absolute_pos_z(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_count_base_name(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_count(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_count_x(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_count_y(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_count_z(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_dim_base_name(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_dim(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_dim_x(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_dim_y(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_dim_z(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_pos_base_name(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_pos(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_pos_x(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_pos_y(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cube_pos_z(f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos_computation(_f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos_base_name(f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos(f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos_x(f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos_y(f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos_z(f: &mut Formatter<'_>) -> Result

Source§

fn compile_plane_dim(f: &mut Formatter<'_>) -> Result

Source§

fn compile_plane_dim_checked(f: &mut Formatter<'_>) -> Result

Source§

fn compile_plane_pos(f: &mut Formatter<'_>) -> Result

Source§

fn compile_unit_pos_plane(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cluster_pos(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cluster_pos_x(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cluster_pos_y(f: &mut Formatter<'_>) -> Result

Source§

fn compile_cluster_pos_z(f: &mut Formatter<'_>) -> Result

Source§

impl DialectIncludes<MslDialect> for MslDialect

Source§

type Extension = Extension<MslDialect>

Source§

fn compile_includes(f: &mut Formatter<'_>, _flags: &Flags) -> Result

Source§

fn compile_extensions( f: &mut Formatter<'_>, extensions: &[Self::Extension], ) -> Result

Source§

fn register_instruction_extension( extensions: &mut Vec<Self::Extension>, instruction: &Instruction<Self>, )

Source§

fn register_warp_instruction_extension( _extensions: &mut Vec<Self::Extension>, _instruction: &WarpInstruction<Self>, )

Source§

impl DialectInstructions<MslDialect> for MslDialect

Source§

fn compile_atomic_add( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_and( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_cas( f: &mut Formatter<'_>, input: &Variable<Self>, cmp: &Variable<Self>, val: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_load( f: &mut Formatter<'_>, input: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_max( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_min( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_or( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_store( f: &mut Formatter<'_>, input: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_sub( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_swap( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_atomic_xor( f: &mut Formatter<'_>, lhs: &Variable<Self>, rhs: &Variable<Self>, out: &Variable<Self>, ) -> Result

Source§

fn compile_instruction_printf( f: &mut Formatter<'_>, format_string: &str, args: &[Variable<Self>], ) -> Result

Source§

fn compile_instruction_log1p_scalar<T: Component<Self>>( f: &mut Formatter<'_>, input: T, ) -> Result

Source§

fn compile_instruction_sync_threads(f: &mut Formatter<'_>) -> Result

Source§

fn compile_instruction_thread_fence(f: &mut Formatter<'_>) -> Result

Source§

fn compile_instruction_tanh_scalar<T: Component<Self>>( f: &mut Formatter<'_>, input: T, ) -> Result

Source§

fn compile_instruction_find_first_set<T: Component<Self>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<Self>, ) -> Result

Source§

fn compile_instruction_leading_zeros_scalar<T: Component<Self>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<Self>, ) -> Result

Source§

fn compile_instruction_popcount_scalar<T: Component<Self>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<Self>, ) -> Result

Source§

fn compile_instruction_reverse_bits_scalar<T: Component<Self>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<Self>, ) -> Result

Source§

fn compile_instruction_max_function_name( f: &mut Formatter<'_>, _item: Item<Self>, ) -> Result

Source§

fn compile_instruction_min_function_name( f: &mut Formatter<'_>, _item: Item<Self>, ) -> Result

Source§

fn compile_instruction_powf(f: &mut Formatter<'_>) -> Result

Source§

fn compile_instruction_half_function_name_prefix() -> &'static str

Source§

fn compile_instruction_half2_function_name_prefix() -> &'static str

Source§

fn compile_warp_shuffle( f: &mut Formatter<'_>, var: &str, source: &str, ) -> Result

Source§

fn compile_warp_shuffle_xor( f: &mut Formatter<'_>, var: &str, _elem: &Elem<Self>, offset: &str, ) -> Result

Source§

fn compile_warp_shuffle_up( f: &mut Formatter<'_>, var: &str, offset: &str, ) -> Result

Source§

fn compile_warp_shuffle_down( f: &mut Formatter<'_>, var: &str, offset: &str, ) -> Result

Source§

fn compile_warp_all<T: Component<Self>>( f: &mut Formatter<'_>, input: &T, ) -> Result

Source§

fn compile_warp_any<T: Component<Self>>( f: &mut Formatter<'_>, input: &T, ) -> Result

Source§

fn compile_warp_ballot( f: &mut Formatter<'_>, input: &Variable<Self>, out_elem: &Elem<Self>, ) -> Result

Source§

impl DialectTypes<MslDialect> for MslDialect

Source§

fn item_can_be_optimized() -> bool

Source§

fn compile_type_definitions( f: &mut Formatter<'_>, items: &HashSet<Item<Self>>, _scalars: &[(Elem<Self>, usize)], _flags: &Flags, ) -> Result

Source§

fn compile_elem( f: &mut Formatter<'_>, elem: &Elem<Self>, _words: bool, ) -> Result

Source§

fn compile_item(f: &mut Formatter<'_>, item: &Item<Self>) -> Result

Source§

fn compile_atomic_kind(f: &mut Formatter<'_>, kind: &AtomicKind<Self>) -> Result

Source§

fn address_space_for_variable(variable: &Variable<Self>) -> String

Address space (for Metal dialect only).
Source§

fn compile_local_memory_qualifier(f: &mut Formatter<'_>) -> Result

Source§

fn compile_shared_memory_qualifier( f: &mut Formatter<'_>, _shared: &SharedMemory<Self>, ) -> Result

Source§

fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags) -> Result

Source§

impl DialectWmmaCompiler<MslDialect> for MslDialect

Source§

impl Hash for MslDialect

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for MslDialect

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 MslDialect

Source§

impl Dialect for MslDialect

Source§

impl Eq for MslDialect

Source§

impl StructuralPartialEq for MslDialect

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> CubeComptime for T
where T: Debug + Hash + Eq + Clone + Copy,