Skip to main content

Mojo struct

TileScheduler

@register_passable(trivial) struct TileScheduler[M: Int, tile_shape: IndexList[3], cluster: IndexList[3] = Index(1, 1, 1), swizzle: Bool = False]

Fields

  • group_offsets (NDBuffer[DType.uint32, 1, MutableAnyOrigin]):
  • current_iter (Int32):
  • current_group_idx (UInt32):
  • current_n_cumsum (UInt32):

Implemented traits

AnyType, Copyable, ImplicitlyCopyable, Movable, UnknownDestructibility

Aliases

__copyinit__is_trivial

alias __copyinit__is_trivial = UInt32.__copyinit__is_trivial if UInt32.__copyinit__is_trivial if Int32.__copyinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else Int32.__copyinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else UInt32.__copyinit__is_trivial if Int32.__copyinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else Int32.__copyinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__copyinit__is_trivial

__del__is_trivial

alias __del__is_trivial = UInt32.__del__is_trivial if UInt32.__del__is_trivial if Int32.__del__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else Int32.__del__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else UInt32.__del__is_trivial if Int32.__del__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else Int32.__del__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__del__is_trivial

__moveinit__is_trivial

alias __moveinit__is_trivial = UInt32.__moveinit__is_trivial if UInt32.__moveinit__is_trivial if Int32.__moveinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else Int32.__moveinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else UInt32.__moveinit__is_trivial if Int32.__moveinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else Int32.__moveinit__is_trivial if NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial else NDBuffer[DType.uint32, 1, MutableAnyOrigin].__moveinit__is_trivial

div_block_n

alias div_block_n = FastDiv[DType.uint32](tile_shape.__getitem__[3, DType.int64, Int](1))

kNum1DBlocksPerGroup

alias kNum1DBlocksPerGroup = 16

num_m_blocks

alias num_m_blocks = SIMD[DType.uint32, 1](ceildiv(M, tile_shape.__getitem__[3, DType.int64, Int](0)))

Methods

__init__

__init__(group_offsets: NDBuffer[DType.uint32, 1, MutableAnyOrigin]) -> Self

fetch_next_work

fetch_next_work(mut self) -> WorkInfo

Returns:

WorkInfo

Was this page helpful?