pub struct PartitionScheduler {
pub m: AxisScheduler,
pub n: AxisScheduler,
pub k: AxisScheduler,
}Expand description
Schedules global indices for M, N, and K axes in a partitioned matmul.
Internally uses an AxisScheduler per axis.
Fields§
§m: AxisScheduler§n: AxisScheduler§k: AxisSchedulerImplementations§
Source§impl PartitionScheduler
impl PartitionScheduler
Sourcepub fn new(
partition_index_m: u32,
partition_index_n: u32,
partition_size: PartitionSize,
partition_schedule_scheme: PartitionSchedulerScheme,
) -> PartitionScheduler
pub fn new( partition_index_m: u32, partition_index_n: u32, partition_size: PartitionSize, partition_schedule_scheme: PartitionSchedulerScheme, ) -> PartitionScheduler
Creates a PartitionScheduler for a partition at (partition_index_m, partition_index_n).
Offset: rotates indices per axis to spread memory access and avoid conflicts.Naive: uses simple row-major order for partitions.
pub fn __expand_new( scope: &mut Scope, partition_index_m: <u32 as CubeType>::ExpandType, partition_index_n: <u32 as CubeType>::ExpandType, partition_size: PartitionSize, partition_schedule_scheme: PartitionSchedulerScheme, ) -> <PartitionScheduler as CubeType>::ExpandType
pub fn __expand_map_m( scope: &mut Scope, this: <Self as CubeType>::ExpandType, i: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
pub fn __expand_map_n( scope: &mut Scope, this: <Self as CubeType>::ExpandType, i: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
pub fn __expand_map_k( scope: &mut Scope, this: <Self as CubeType>::ExpandType, i: <u32 as CubeType>::ExpandType, ) -> <u32 as CubeType>::ExpandType
Trait Implementations§
Source§impl CubeType for PartitionScheduler
impl CubeType for PartitionScheduler
type ExpandType = PartitionSchedulerExpand
Source§fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Wrapper around the init method, necessary to type inference.
Auto Trait Implementations§
impl Freeze for PartitionScheduler
impl RefUnwindSafe for PartitionScheduler
impl Send for PartitionScheduler
impl Sync for PartitionScheduler
impl Unpin for PartitionScheduler
impl UnwindSafe for PartitionScheduler
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