Skip to main content
Log in

Mojo struct

TileScheduler

@register_passable(trivial) struct TileScheduler[tile_shape: Index[3], grid_shape: Index[2], cluster: Index[3] = Index(1, 1, 1), raster_dim: SIMD[uint32, 1] = __init__[__mlir_type.!pop.int_literal](1), schedule: MatmulSchedule = MatmulSchedule(__init__[__mlir_type.!pop.int_literal](1))]

Aliases

  • wave_shape = Index((grid_shape.__getitem__[::Indexer](1) * tile_shape.__getitem__[::Indexer](0)), (grid_shape.__getitem__[::Indexer](0) * tile_shape.__getitem__[::Indexer](1))):
  • num_grids = SIMD((grid_shape.__getitem__[::Indexer](0) * grid_shape.__getitem__[::Indexer](1))):

Fields

  • idx (SIMD[uint32, 1]):
  • prob_shape (Index[3]):
  • num_waves_m (SIMD[uint32, 1]):
  • num_waves_n (SIMD[uint32, 1]):
  • log_num_waves_n (FastDiv[uint32]):

Implemented traits

AnyType, UnknownDestructibility

Methods

__init__

__init__(prob_shape: Index[3]) -> Self

get_current_work_info

get_current_work_info(self) -> WorkInfo

advance

advance(mut self)

fetch_next_work

fetch_next_work(mut self) -> WorkInfo

num_output_tiles

num_output_tiles(self) -> UInt