IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /get-started.md).

Mojo struct

BlackwellProfileWarp

struct BlackwellProfileWarp[workspace_origin: MutOrigin, load_warps: UInt32, mma_warps: UInt32, scheduler_warps: UInt32, epilogue_warps: UInt32, max_entries_per_warp: UInt32, //, WorkspaceManager: BlackwellWarpProfilingWorkspaceManager[load_warps, mma_warps, scheduler_warps, epilogue_warps, max_entries_per_warp], warp_role: UInt32 = UInt32(0)]

Calculates execution time for a warp/s, and writes a single entry to the workspace.

Parameters

  • workspace_origin (MutOrigin): Memory origin of the profiling workspace buffer (inferred).
  • load_warps (UInt32): Number of warps specialized for load operations (inferred).
  • mma_warps (UInt32): Number of warps specialized for matrix multiply-accumulate operations (inferred).
  • scheduler_warps (UInt32): Number of warps specialized for scheduling operations (inferred).
  • epilogue_warps (UInt32): Number of warps specialized for epilogue operations (inferred).
  • max_entries_per_warp (UInt32): Maximum number of timeline entries recorded per warp role (inferred). Profiling is enabled when this value is greater than zero.
  • WorkspaceManager (BlackwellWarpProfilingWorkspaceManager[load_warps, mma_warps, scheduler_warps, epilogue_warps, max_entries_per_warp]): Workspace manager responsible for allocating the profiling buffer and writing timeline entries (defaults to BlackwellWarpProfilingWorkspaceManager parameterized by the warp counts).
  • warp_role (UInt32): Role of this warp, where 0 is load, 1 is scheduler, 2 is mma, and 3 is epilogue (defaults to 0).

Fields

  • timeline (Tuple[UInt64, UInt64]):
  • workspace (Span[UInt64, workspace_origin]):
  • entry_idx (UInt32):

Implemented traits

AnyType, Copyable, Deinitable, ImplicitlyCopyable, Movable

comptime members

enable_profiling

comptime enable_profiling = (max_entries_per_warp > UInt32(0))

Methods

__init__

def __init__(out self, workspace: Span[UInt64, workspace_origin], entry_idx: UInt32)

__enter__

def __enter__(mut self)

__exit__

def __exit__(mut self)