pub trait StageConfig:
Copy
+ Clone
+ Eq
+ PartialEq
+ Hash
+ Debug
+ Send
+ Sync
+ 'static {
type TileConfig: TileConfig;
Show 15 methods
// Required methods
fn tile_config(self) -> Self::TileConfig;
fn stage_line_size(&self, ident: StageIdent) -> u32;
fn global_line_size(&self, ident: StageIdent) -> u32;
fn matrix_layout(&self, ident: StageIdent) -> MatrixLayout;
fn plane_dim(&self) -> u32;
fn partition_buffering(&self) -> PartitionBuffering;
fn tiling_scheme(&self) -> TilingScheme;
fn plane_role_config(&self) -> PlaneRoleConfig;
fn role_rule_config(&self) -> RoleRuleConfig;
fn num_main_flow_planes(&self) -> u32;
fn quantized(&self) -> bool;
fn must_sync_plane_after_execution(&self) -> bool;
fn partition_schedule_scheme(&self) -> PartitionSchedulerScheme;
fn num_stages(&self, ident: StageIdent) -> u32;
// Provided method
fn stage_memory_config(self, ident: StageIdent) -> StageMemoryConfig { ... }
}Expand description
Configuration for the Stage matmul (SMM) level
Required Associated Types§
Sourcetype TileConfig: TileConfig
type TileConfig: TileConfig
Underlying Tile matmul config
Required Methods§
Sourcefn tile_config(self) -> Self::TileConfig
fn tile_config(self) -> Self::TileConfig
Converts itself to the underlying Tile Matmul config
Sourcefn stage_line_size(&self, ident: StageIdent) -> u32
fn stage_line_size(&self, ident: StageIdent) -> u32
Returns the line size for the given ident
Sourcefn global_line_size(&self, ident: StageIdent) -> u32
fn global_line_size(&self, ident: StageIdent) -> u32
Returns the line size for the given ident
Sourcefn matrix_layout(&self, ident: StageIdent) -> MatrixLayout
fn matrix_layout(&self, ident: StageIdent) -> MatrixLayout
Returns the MatrixLayout for the given ident
Sourcefn partition_buffering(&self) -> PartitionBuffering
fn partition_buffering(&self) -> PartitionBuffering
Returns whether we must perform partition buffering
Sourcefn tiling_scheme(&self) -> TilingScheme
fn tiling_scheme(&self) -> TilingScheme
Returns the TilingScheme
Sourcefn plane_role_config(&self) -> PlaneRoleConfig
fn plane_role_config(&self) -> PlaneRoleConfig
Indicates the specialization roles for the planes
Sourcefn role_rule_config(&self) -> RoleRuleConfig
fn role_rule_config(&self) -> RoleRuleConfig
How to identify the role of the plane depending on its index
Sourcefn num_main_flow_planes(&self) -> u32
fn num_main_flow_planes(&self) -> u32
Number of planes participating in the main computation flow
Sourcefn must_sync_plane_after_execution(&self) -> bool
fn must_sync_plane_after_execution(&self) -> bool
Whether we must sync planes after execution because the execution is not sync by itself (depends on the runtime/compiler)
fn partition_schedule_scheme(&self) -> PartitionSchedulerScheme
Sourcefn num_stages(&self, ident: StageIdent) -> u32
fn num_stages(&self, ident: StageIdent) -> u32
Number of stages in the stage
Provided Methods§
Sourcefn stage_memory_config(self, ident: StageIdent) -> StageMemoryConfig
fn stage_memory_config(self, ident: StageIdent) -> StageMemoryConfig
Converts itself to the underlying Stage Memory config
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.