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?
Thank you! We'll create more content like this.
Thank you for helping us improve!