Skip to main content

Mojo struct

TileScheduler

@register_passable(trivial) struct TileScheduler[num_stages: Int, cluster_shape: IndexList[3, element_type=DType.uint32] = Index[dtype=DType.uint32](1, 1, 1), rasterize_order: RasterOrder = RasterOrder(1), block_swizzle_size: Int = 8]

Fields

  • cluster_dim (StaticTuple[Int32, 3]):
  • log_cluster_dim_m (FastDiv[DType.uint32]):
  • log_cluster_dim_n (FastDiv[DType.uint32]):
  • log_cluster_dim_k (FastDiv[DType.uint32]):
  • clc_response (UnsafePointer[UInt128, address_space=AddressSpace(3)]):
  • full_mbar (UnsafePointer[SharedMemBarrier, address_space=AddressSpace(3)]):
  • empty_mbar (UnsafePointer[SharedMemBarrier, address_space=AddressSpace(3)]):

Implemented traits

AnyType, Copyable, ImplicitlyCopyable, Movable, UnknownDestructibility

Aliases

__copyinit__is_trivial

alias __copyinit__is_trivial = True

__del__is_trivial

alias __del__is_trivial = True

__moveinit__is_trivial

alias __moveinit__is_trivial = True

cluster_size

alias cluster_size = (cluster_shape.__getitem__[3, DType.uint32, Int](2) * cluster_shape.__getitem__[3, DType.uint32, Int](0) * cluster_shape.__getitem__[3, DType.uint32, Int](1))

log_cluster_k

alias log_cluster_k = FastDiv[DType.uint32](cluster_shape.__getitem__[3, DType.uint32, Int](2))

log_cluster_m

alias log_cluster_m = FastDiv[DType.uint32](cluster_shape.__getitem__[3, DType.uint32, Int](0))

log_cluster_n

alias log_cluster_n = FastDiv[DType.uint32](cluster_shape.__getitem__[3, DType.uint32, Int](1))

Methods

__init__

__init__(cluster_dim: StaticTuple[Int32, 3], clc_response_ptr: UnsafePointer[UInt128, address_space=AddressSpace(3)], full_mbar_ptr: UnsafePointer[SharedMemBarrier, address_space=AddressSpace(3)], empty_mbar_ptr: UnsafePointer[SharedMemBarrier, address_space=AddressSpace(3)]) -> Self

work_info_from_clc_response

static work_info_from_clc_response(result: UnsafePointer[UInt128, address_space=AddressSpace(3)]) -> WorkInfo

Returns:

WorkInfo

work_info_from_cluster

static work_info_from_cluster(work_info: WorkInfo, cluster_dim: StaticTuple[Int32, 3], log_cluster_dim_m: FastDiv[DType.uint32], log_cluster_dim_n: FastDiv[DType.uint32]) -> WorkInfo

Returns:

WorkInfo

initial_work_info

initial_work_info(self) -> WorkInfo

Returns:

WorkInfo

fetch_next_work

fetch_next_work(self, work_info: WorkInfo, consumer_state: PipelineState[num_stages]) -> WorkInfo

Returns:

WorkInfo

advance_to_next_work

advance_to_next_work(self, mut clc_state: PipelineState[num_stages]) -> PipelineState[num_stages]

Returns:

PipelineState

Was this page helpful?