pub struct HipDialect<M> { /* private fields */ }Trait Implementations§
Source§impl<M: Clone> Clone for HipDialect<M>
impl<M: Clone> Clone for HipDialect<M>
Source§fn clone(&self) -> HipDialect<M>
fn clone(&self) -> HipDialect<M>
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<M: Debug> Debug for HipDialect<M>
impl<M: Debug> Debug for HipDialect<M>
Source§impl<M: Default> Default for HipDialect<M>
impl<M: Default> Default for HipDialect<M>
Source§fn default() -> HipDialect<M>
fn default() -> HipDialect<M>
Returns the “default value” for a type. Read more
Source§impl<M: DialectWmmaCompiler<Self>> Dialect for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> Dialect for HipDialect<M>
Source§impl<M: DialectWmmaCompiler<Self>> DialectBindings<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectBindings<HipDialect<M>> for HipDialect<M>
Source§impl<M: DialectWmmaCompiler<Self>> DialectCubeBuiltins<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectCubeBuiltins<HipDialect<M>> for HipDialect<M>
Source§fn builtin_rules(flags: &CubeIndexFlags) -> CubeIndexFlags
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
but in other dialects there is none so we have to compute it using
other built-ins.
fn compile_absolute_pos_tuple_computation(f: &mut Formatter<'_>) -> Result
fn compile_absolute_pos_base_name(f: &mut Formatter<'_>) -> Result
fn compile_absolute_pos(f: &mut Formatter<'_>) -> Result
fn compile_absolute_pos_x(f: &mut Formatter<'_>) -> Result
fn compile_absolute_pos_y(f: &mut Formatter<'_>) -> Result
fn compile_absolute_pos_z(f: &mut Formatter<'_>) -> Result
fn compile_cube_count_base_name(f: &mut Formatter<'_>) -> Result
fn compile_cube_count(f: &mut Formatter<'_>) -> Result
fn compile_cube_count_x(f: &mut Formatter<'_>) -> Result
fn compile_cube_count_y(f: &mut Formatter<'_>) -> Result
fn compile_cube_count_z(f: &mut Formatter<'_>) -> Result
fn compile_cube_dim_base_name(f: &mut Formatter<'_>) -> Result
fn compile_cube_dim(f: &mut Formatter<'_>) -> Result
fn compile_cube_dim_x(f: &mut Formatter<'_>) -> Result
fn compile_cube_dim_y(f: &mut Formatter<'_>) -> Result
fn compile_cube_dim_z(f: &mut Formatter<'_>) -> Result
fn compile_cube_pos_base_name(f: &mut Formatter<'_>) -> Result
fn compile_cube_pos(f: &mut Formatter<'_>) -> Result
fn compile_cube_pos_x(f: &mut Formatter<'_>) -> Result
fn compile_cube_pos_y(f: &mut Formatter<'_>) -> Result
fn compile_cube_pos_z(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos_computation(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos_base_name(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos_x(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos_y(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos_z(f: &mut Formatter<'_>) -> Result
fn compile_plane_dim(f: &mut Formatter<'_>) -> Result
fn compile_plane_dim_checked(f: &mut Formatter<'_>) -> Result
fn compile_plane_pos(f: &mut Formatter<'_>) -> Result
fn compile_unit_pos_plane(f: &mut Formatter<'_>) -> Result
fn compile_cluster_pos(f: &mut Formatter<'_>) -> Result
fn compile_cluster_pos_x(f: &mut Formatter<'_>) -> Result
fn compile_cluster_pos_y(f: &mut Formatter<'_>) -> Result
fn compile_cluster_pos_z(f: &mut Formatter<'_>) -> Result
Source§impl<M: DialectWmmaCompiler<Self>> DialectIncludes<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectIncludes<HipDialect<M>> for HipDialect<M>
type Extension = Extension<HipDialect<M>>
fn compile_includes(f: &mut Formatter<'_>, flags: &Flags) -> Result
fn compile_extensions( f: &mut Formatter<'_>, extensions: &[Self::Extension], ) -> Result
fn register_instruction_extension( extensions: &mut Vec<Self::Extension>, instruction: &Instruction<Self>, )
fn register_warp_instruction_extension( extensions: &mut Vec<Self::Extension>, instruction: &WarpInstruction<Self>, )
fn register_wmma_instruction_extension( extensions: &mut Vec<Self::Extension>, instruction: &WmmaInstruction<Self>, )
Source§impl<M: DialectWmmaCompiler<Self>> DialectInstructions<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectInstructions<HipDialect<M>> for HipDialect<M>
fn compile_instruction_sync_threads(f: &mut Formatter<'_>) -> Result
fn compile_instruction_sync_warp(_f: &mut Formatter<'_>) -> Result
fn compile_instruction_thread_fence(f: &mut Formatter<'_>) -> Result
fn compile_instruction_find_first_set<T: Component<Self>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<Self>, ) -> Result
fn compile_instruction_leading_zeros_scalar<T: Component<Self>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<Self>, ) -> Result
fn compile_saturating_add( _f: &mut Formatter<'_>, _lhs: impl Display, _rhs: impl Display, _item: Item<Self>, ) -> Result
fn compile_saturating_sub( _f: &mut Formatter<'_>, _lhs: impl Display, _rhs: impl Display, _item: Item<Self>, ) -> Result
fn compile_instruction_max_function_name( f: &mut Formatter<'_>, item: Item<Self>, ) -> Result
fn compile_instruction_min_function_name( f: &mut Formatter<'_>, item: Item<Self>, ) -> Result
fn compile_warp_shuffle( f: &mut Formatter<'_>, var: &str, source: &str, ) -> Result
fn compile_warp_shuffle_xor( f: &mut Formatter<'_>, var: &str, elem: &Elem<Self>, offset: &str, ) -> Result
fn compile_warp_shuffle_up( f: &mut Formatter<'_>, var: &str, offset: &str, ) -> Result
fn compile_warp_shuffle_down( f: &mut Formatter<'_>, var: &str, offset: &str, ) -> Result
fn compile_warp_all<T: Component<Self>>( f: &mut Formatter<'_>, input: &T, ) -> Result
fn compile_warp_any<T: Component<Self>>( f: &mut Formatter<'_>, input: &T, ) -> Result
fn compile_warp_ballot( f: &mut Formatter<'_>, input: &Variable<Self>, out_elem: &Elem<Self>, ) -> Result
fn compile_atomic_add( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_and( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_cas( f: &mut Formatter<'_>, input: &Variable<D>, cmp: &Variable<D>, val: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_load( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_max( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_min( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_or( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_store( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_sub( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_swap( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_xor( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_instruction_printf( f: &mut Formatter<'_>, format_string: &str, args: &[Variable<D>], ) -> Result
fn compile_instruction_log1p_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, ) -> Result
fn compile_instruction_tanh_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, ) -> Result
fn compile_instruction_popcount_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<D>, ) -> Result
fn compile_instruction_reverse_bits_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<D>, ) -> Result
fn compile_instruction_powf( f: &mut Formatter<'_>, lhs: &str, rhs: &str, elem: Elem<D>, ) -> Result
fn compile_instruction_half_function_name_prefix() -> &'static str
fn compile_instruction_half2_function_name_prefix() -> &'static str
Source§impl<M: DialectWmmaCompiler<Self>> DialectProcessors<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectProcessors<HipDialect<M>> for HipDialect<M>
Source§impl<M: DialectWmmaCompiler<Self>> DialectTypes<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectTypes<HipDialect<M>> for HipDialect<M>
fn item_can_be_optimized() -> bool
fn compile_type_definitions( f: &mut Formatter<'_>, items: &HashSet<Item<Self>>, _scalars: &[(Elem<Self>, usize)], flags: &Flags, ) -> Result
fn compile_elem(f: &mut Formatter<'_>, elem: &Elem<Self>, words: bool) -> Result
fn compile_item(f: &mut Formatter<'_>, item: &Item<Self>) -> Result
fn compile_local_memory_qualifier(_f: &mut Formatter<'_>) -> Result
fn compile_atomic_kind(f: &mut Formatter<'_>, kind: &AtomicKind<D>) -> Result
fn compile_polyfills(_f: &mut Formatter<'_>, _flags: &Flags) -> Result
Source§fn address_space_for_variable(_variable: &Variable<D>) -> String
fn address_space_for_variable(_variable: &Variable<D>) -> String
Address space (for Metal dialect only).
Source§impl<M: DialectWmmaCompiler<Self>> DialectWarpReduceCompiler<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectWarpReduceCompiler<HipDialect<M>> for HipDialect<M>
fn warp_reduce_sum( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_prod( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_max( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_min( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_all( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_any( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_sum_inclusive( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_prod_inclusive( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_sum_exclusive( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn warp_reduce_prod_exclusive( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
Source§impl<M: DialectWmmaCompiler<Self>> DialectWmmaCompiler<HipDialect<M>> for HipDialect<M>
impl<M: DialectWmmaCompiler<Self>> DialectWmmaCompiler<HipDialect<M>> for HipDialect<M>
fn compile_wmma_includes(f: &mut Formatter<'_>, flags: &Flags) -> Result
fn compile_wmma_type_definitions(f: &mut Formatter<'_>, flags: &Flags) -> Result
fn compile_wmma_local_variables(f: &mut Formatter<'_>) -> Result
fn compile_wmma_fragment_declaration( f: &mut Formatter<'_>, var: &Variable<Self>, ) -> Result
fn compile_wwma_fragment_ident( f: &mut Formatter<'_>, ident: &FragmentIdent<Self>, ) -> Result
fn compile_wmma_fragment_layout( f: &mut Formatter<'_>, layout: &FragmentLayout<Self>, ) -> Result
fn compile_wmma_fragment( f: &mut Formatter<'_>, fragment: &Fragment<Self>, ) -> Result
fn compile_wmma_instruction( f: &mut Formatter<'_>, instruction: &WmmaInstruction<Self>, ) -> Result
fn compile_manual_mma(f: &mut Formatter<'_>, mma: ManualMma<'_, Self>) -> Result
fn supported_wmma_combinations( arch: &AMDArchitecture, ) -> SupportedMmaCombinations
fn supported_mma_combinations( arch: &AMDArchitecture, ) -> SupportedMmaCombinations
fn compile_scaled_mma( _f: &mut Formatter<'_>, _mma: ManualMma<'_, Self>, _scales_a: Variable<Self>, _scales_b: Variable<Self>, _scales_factor: u32, ) -> Result
fn supported_scaled_mma_combinations( _arch: &D::Architecture, ) -> SupportedScaledMmaCombinations
Source§impl DialectWmmaCompiler<HipDialect<RocWmmaCompiler>> for RocWmmaCompiler
impl DialectWmmaCompiler<HipDialect<RocWmmaCompiler>> for RocWmmaCompiler
fn compile_wmma_includes(f: &mut Formatter<'_>, _flags: &Flags) -> Result
fn compile_wmma_type_definitions(f: &mut Formatter<'_>, flags: &Flags) -> Result
fn compile_wmma_local_variables(_f: &mut Formatter<'_>) -> Result
fn compile_wmma_fragment_declaration( f: &mut Formatter<'_>, var: &Variable<HipDialect<Self>>, ) -> Result
fn compile_wwma_fragment_ident( f: &mut Formatter<'_>, ident: &FragmentIdent<HipDialect<Self>>, ) -> Result
fn compile_wmma_fragment_layout( f: &mut Formatter<'_>, layout: &FragmentLayout<HipDialect<Self>>, ) -> Result
fn compile_wmma_fragment( f: &mut Formatter<'_>, fragment: &Fragment<HipDialect<Self>>, ) -> Result
fn compile_wmma_instruction( f: &mut Formatter<'_>, instruction: &WmmaInstruction<HipDialect<Self>>, ) -> Result
fn compile_manual_mma( f: &mut Formatter<'_>, mma: ManualMma<'_, HipDialect<Self>>, ) -> Result
fn compile_scaled_mma( _f: &mut Formatter<'_>, _mma: ManualMma<'_, HipDialect<Self>>, _scales_a: Variable<HipDialect<Self>>, _scales_b: Variable<HipDialect<Self>>, _scales_factor: u32, ) -> Result
fn supported_wmma_combinations( arch: &AMDArchitecture, ) -> SupportedMmaCombinations
fn supported_mma_combinations( arch: &AMDArchitecture, ) -> SupportedMmaCombinations
fn supported_scaled_mma_combinations( _arch: &D::Architecture, ) -> SupportedScaledMmaCombinations
Source§impl DialectWmmaCompiler<HipDialect<WmmaIntrinsicCompiler>> for WmmaIntrinsicCompiler
impl DialectWmmaCompiler<HipDialect<WmmaIntrinsicCompiler>> for WmmaIntrinsicCompiler
fn compile_wmma_type_definitions(f: &mut Formatter<'_>, flags: &Flags) -> Result
fn compile_wmma_fragment_declaration( f: &mut Formatter<'_>, var: &Variable<HipDialect<Self>>, ) -> Result
fn compile_wmma_fragment( f: &mut Formatter<'_>, fragment: &Fragment<HipDialect<Self>>, ) -> Result
fn compile_wmma_instruction( f: &mut Formatter<'_>, instruction: &WmmaInstruction<HipDialect<Self>>, ) -> Result
fn compile_manual_mma( f: &mut Formatter<'_>, mma: ManualMma<'_, HipDialect<Self>>, ) -> Result
fn compile_scaled_mma( _f: &mut Formatter<'_>, _mma: ManualMma<'_, HipDialect<Self>>, _scales_a: Variable<HipDialect<Self>>, _scales_b: Variable<HipDialect<Self>>, _scales_factor: u32, ) -> Result
fn supported_wmma_combinations( arch: &AMDArchitecture, ) -> SupportedMmaCombinations
fn supported_mma_combinations( arch: &AMDArchitecture, ) -> SupportedMmaCombinations
fn compile_wmma_includes(f: &mut Formatter<'_>, flags: &Flags) -> Result
fn compile_wmma_local_variables(f: &mut Formatter<'_>) -> Result
fn compile_wwma_fragment_ident( f: &mut Formatter<'_>, ident: &FragmentIdent<D>, ) -> Result
fn compile_wmma_fragment_layout( f: &mut Formatter<'_>, layout: &FragmentLayout<D>, ) -> Result
fn supported_scaled_mma_combinations( _arch: &D::Architecture, ) -> SupportedScaledMmaCombinations
Source§impl<M: Hash> Hash for HipDialect<M>
impl<M: Hash> Hash for HipDialect<M>
Source§impl<M: PartialEq> PartialEq for HipDialect<M>
impl<M: PartialEq> PartialEq for HipDialect<M>
impl<M: Copy> Copy for HipDialect<M>
impl<M: Eq> Eq for HipDialect<M>
impl<M> StructuralPartialEq for HipDialect<M>
Auto Trait Implementations§
impl<M> Freeze for HipDialect<M>
impl<M> RefUnwindSafe for HipDialect<M>where
M: RefUnwindSafe,
impl<M> Send for HipDialect<M>where
M: Send,
impl<M> Sync for HipDialect<M>where
M: Sync,
impl<M> Unpin for HipDialect<M>where
M: Unpin,
impl<M> UnwindSafe for HipDialect<M>where
M: UnwindSafe,
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,
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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