Skip to main content

Mojo struct

TileScheduler

@register_passable(trivial) struct TileScheduler[num_stages: Int, cluster_shape: IndexList[3] = Index(1, 1, 1)]

Fields

  • clc_response (UnsafePointer[SIMD[ui128, 1], address_space=AddressSpace(3)]):
  • full_mbar (UnsafePointer[SharedMemBarrier, address_space=AddressSpace(3)]):
  • empty_mbar (UnsafePointer[SharedMemBarrier, address_space=AddressSpace(3)]):

Implemented traits

AnyType, Copyable, Movable, UnknownDestructibility

Aliases

cluster_size

alias cluster_size = (cluster_shape.__getitem__[::Indexer](2) * cluster_shape.__getitem__[::Indexer](0) * cluster_shape.__getitem__[::Indexer](1))

Methods

__init__

__init__(clc_response_ptr: UnsafePointer[SIMD[ui128, 1], 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[SIMD[ui128, 1], address_space=AddressSpace(3)]) -> WorkInfo

initial_work_info

initial_work_info(self) -> WorkInfo

fetch_next_work

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

advance_to_next_work

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

Was this page helpful?