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
BlackwellWarpProfilingWorkspaceManager
struct BlackwellWarpProfilingWorkspaceManager[load_warps: UInt32, mma_warps: UInt32, scheduler_warps: UInt32, epilogue_warps: UInt32, max_entries_per_warp: UInt32]
Profiling workspace for warp-role timelines on each SM.
Each SM owns a fixed-size chunk of timestamp entries, capped per warp role.
Parameters
- load_warps (
UInt32): Number of warps specialized for load operations. - mma_warps (
UInt32): Number of warps specialized for matrix multiply-accumulate operations. - scheduler_warps (
UInt32): Number of warps specialized for scheduling operations. - epilogue_warps (
UInt32): Number of warps specialized for epilogue operations. - max_entries_per_warp (
UInt32): Maximum number of entries per warp (common across all warp roles).
Implemented traits
AnyType,
Copyable,
Deinitable,
ImplicitlyCopyable,
Movable,
RegisterPassable,
TrivialRegisterPassable
comptime members
entries_per_sm
comptime entries_per_sm = max_entries_per_warp.__rmul__(UInt32(4))
header
comptime header = "time_start,time_end,sm_id,block_idx_x,block_idx_y,role,entry_idx\n"
sm_count
comptime sm_count = B200.sm_count
total_data_points
comptime total_data_points = 7
total_warp_roles
comptime total_warp_roles = 4
Methods
get_workspace
static def get_workspace(ctx: DeviceContext) -> Span[UInt64, MutAnyOrigin]
Returns:
write_to_workspace
static def write_to_workspace[workspace_origin: MutOrigin, //, warp_role: UInt32](sm_idx: UInt32, entry_idx: UInt32, workspace: Span[UInt64, workspace_origin], timeline: Tuple[UInt64, UInt64])
dump_workspace_as_csv
static def dump_workspace_as_csv(ctx: DeviceContext, workspace: Span[UInt64, MutAnyOrigin], filename: StringSpan[ImmStaticOrigin])