Skip to main content

Mojo struct

WarpRole

@register_passable(trivial) struct WarpRole

Warp role identifiers for SM100 warp-specialized kernel.

Warp assignment (8 warps total = 256 threads):

  • Epilogue: warp IDs 0-3 (4 warps, 128 threads)
  • Scheduler: warp ID 4 (1 warp, 32 threads)
  • MainLoad: warp ID 5 (1 warp, 32 threads)
  • Mma: warp ID 6 (1 warp, 32 threads)
  • EpilogueLoad: warp ID 7 (1 warp, 32 threads) - loads source C for residual

Note: When epilogue load is not needed (no residual), warp 7 exits early.

Implemented traits

AnyType, Copyable, ImplicitlyCopyable, ImplicitlyDestructible, Movable, RegisterPassable, TrivialRegisterPassable

comptime members

__copyinit__is_trivial

comptime __copyinit__is_trivial = True

__del__is_trivial

comptime __del__is_trivial = True

__moveinit__is_trivial

comptime __moveinit__is_trivial = True

Epilogue

comptime Epilogue = WarpRole(3)

EpilogueLoad

comptime EpilogueLoad = WarpRole(7)

MainLoad

comptime MainLoad = WarpRole(5)

Mma

comptime Mma = WarpRole(6)

Scheduler

comptime Scheduler = WarpRole(4)

Methods

__eq__

__eq__(self, other: Scalar[DType.uint]) -> Bool

Returns:

Bool

__eq__(self, other: Self) -> Bool

Returns:

Bool

__ne__

__ne__(self, other: Self) -> Bool

Returns:

Bool

__ge__

__ge__(self, other: Scalar[DType.uint]) -> Bool

Returns:

Bool

is_main_load

static is_main_load() -> Bool

Returns:

Bool

is_mma

static is_mma() -> Bool

Returns:

Bool

is_epilogue

static is_epilogue() -> Bool

Returns:

Bool

is_scheduler

static is_scheduler() -> Bool

Returns:

Bool

is_epilogue_load

static is_epilogue_load() -> Bool

Check if current warp is the epilogue load warp (loads source C).

Returns:

Bool

Was this page helpful?