pub trait GlobalConfig: MatmulConfig {
type SmmConfig: StageConfig;
// Required methods
fn to_smm_config(&self) -> Self::SmmConfig;
fn global_line_size<I: Into<Ident>>(&self, ident: I) -> u32;
fn tiling_dimensions<I: Into<Ident>>(&self, ident: I) -> TilingDimensions;
fn matrix_layout<I: Into<Ident>>(&self, ident: I) -> MatrixLayout;
fn num_planes(&self) -> u32;
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;
}
Expand description
Configuration for the global matmul level.
Required Associated Types§
Sourcetype SmmConfig: StageConfig
type SmmConfig: StageConfig
Underlying Stage matmul config
Required Methods§
Sourcefn to_smm_config(&self) -> Self::SmmConfig
fn to_smm_config(&self) -> Self::SmmConfig
Convert itself to the underlying stage matmul config
Sourcefn global_line_size<I: Into<Ident>>(&self, ident: I) -> u32
fn global_line_size<I: Into<Ident>>(&self, ident: I) -> u32
Returns the line size for the global memory corresponding to the given ident
Sourcefn tiling_dimensions<I: Into<Ident>>(&self, ident: I) -> TilingDimensions
fn tiling_dimensions<I: Into<Ident>>(&self, ident: I) -> TilingDimensions
Returns the [StageTiling] for the given ident
Sourcefn matrix_layout<I: Into<Ident>>(&self, ident: I) -> MatrixLayout
fn matrix_layout<I: Into<Ident>>(&self, ident: I) -> MatrixLayout
Returns the MatrixLayout for the given ident
Sourcefn num_planes(&self) -> u32
fn num_planes(&self) -> u32
Returns the number of planes in the cube
Sourcefn check_row_bounds<I: Into<Ident>>(&self, ident: I) -> bool
fn check_row_bounds<I: Into<Ident>>(&self, ident: I) -> bool
Whether to check if accessing a row would exceed bounds.
Sourcefn check_col_bounds<I: Into<Ident>>(&self, ident: I) -> bool
fn check_col_bounds<I: Into<Ident>>(&self, ident: I) -> bool
Whether to check if accessing a col would exceed bounds.
Sourcefn check_k_bounds(&self) -> bool
fn check_k_bounds(&self) -> bool
Whether to check if accessing a col for lhs or row for rhs would exceed bounds.
fn precompute_job(&self) -> bool
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.