Trait GlobalConfig

Source
pub trait GlobalConfig:
    Copy
    + Clone
    + Eq
    + PartialEq
    + Hash
    + Debug
    + Send
    + Sync
    + 'static {
    type StageConfig: StageConfig;

Show 18 methods // Required methods fn stage_config(&self) -> Self::StageConfig; fn global_line_size<I: Into<Ident>>(&self, ident: I) -> u32; fn matrix_layout<I: Into<Ident>>(&self, ident: I) -> MatrixLayout; fn num_loading_planes<I: Into<Ident>>(&self, ident: I) -> u32; fn plane_role_config(&self) -> PlaneRoleConfig; fn specialized_loading_sides(&self) -> SpecializedLoadingSides; fn plane_dim(&self) -> u32; fn check_row_bounds<I: Into<Ident>>(&self, ident: I) -> bool; fn check_col_bounds<I: Into<Ident>>(&self, ident: I) -> bool; fn check_k_bounds(&self) -> bool; fn precompute_job(&self) -> bool; fn num_stages(&self, ident: InputIdent) -> u32; fn loader_mode(&self) -> LoaderMode; fn event_loading_mode(&self, ident: InputIdent) -> EventLoadingMode; fn cube_dim(&self) -> CubeDim; // Provided methods fn tiling_scheme(&self) -> TilingScheme { ... } fn role_rule_config(&self) -> RoleRuleConfig { ... } fn quantized(&self) -> bool { ... }
}
Expand description

Configuration for the global matmul level.

Required Associated Types§

Source

type StageConfig: StageConfig

Underlying Stage matmul config

Required Methods§

Source

fn stage_config(&self) -> Self::StageConfig

Convert itself to the underlying stage matmul config

Source

fn global_line_size<I: Into<Ident>>(&self, ident: I) -> u32

Returns the line size for the global memory corresponding to the given ident

Source

fn matrix_layout<I: Into<Ident>>(&self, ident: I) -> MatrixLayout

Returns the MatrixLayout for the given ident

Source

fn num_loading_planes<I: Into<Ident>>(&self, ident: I) -> u32

Returns the number of planes participating in loading ident

Source

fn plane_role_config(&self) -> PlaneRoleConfig

Indicates the specialization roles for the planes

Source

fn specialized_loading_sides(&self) -> SpecializedLoadingSides

Indicates plane roles are associated to loading which tensor input

Source

fn plane_dim(&self) -> u32

Returns the size of the plane dimension

Source

fn check_row_bounds<I: Into<Ident>>(&self, ident: I) -> bool

Whether to check if accessing a row would exceed bounds.

Source

fn check_col_bounds<I: Into<Ident>>(&self, ident: I) -> bool

Whether to check if accessing a col would exceed bounds.

Source

fn check_k_bounds(&self) -> bool

Whether to check if accessing a col for lhs or row for rhs would exceed bounds.

Source

fn precompute_job(&self) -> bool

Whether to put common computations for loading tasks once before loop

Source

fn num_stages(&self, ident: InputIdent) -> u32

The number of stages in stage memory

Source

fn loader_mode(&self) -> LoaderMode

Whether to check loader is balanced in comptime or runtime.

Not supported by all loading strategies

Source

fn event_loading_mode(&self, ident: InputIdent) -> EventLoadingMode

Whether event loading is constrained to be ordered

Source

fn cube_dim(&self) -> CubeDim

The CubeDim arising from the TilingScheme

Provided Methods§

Source

fn tiling_scheme(&self) -> TilingScheme

Returns the TilingScheme

Source

fn role_rule_config(&self) -> RoleRuleConfig

How to identify the role of the plane depending on its index

Source

fn quantized(&self) -> bool

Whether the matmul is quantized

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§