Skip to content

add GPU metrics examples for the run details metrics tab - #1478

Merged
cosmicBboy merged 3 commits into
mainfrom
gpu-metrics-xid-modes
Sep 3, 2026
Merged

add GPU metrics examples for the run details metrics tab#1478
cosmicBboy merged 3 commits into
mainfrom
gpu-metrics-xid-modes

Conversation

@samhita-alla

Copy link
Copy Markdown
Contributor

gpu_metrics.py walks a GPU through distinct load regimes (tensor, bandwidth, PCIe, NVLink, idle), each held long enough to be visible at the console's polling resolution, so every panel on the Metrics tab gets a recognizable signature. gpu_metrics_multinode.py is the ClusteredTaskEnvironment variant, one pod per node with an all-reduce phase so the cross-node interconnect shows up too.

Both can end with a deliberate Xid 31 from an out-of-bounds Triton store, which is how the GPU fault path gets exercised end to end: after_xid picks whether the task then returns, raises, or exits outright, matching the three shapes a fault takes by the time it reaches the console.

samhita-alla and others added 2 commits August 25, 2026 15:24
gpu_metrics.py walks a GPU through distinct load regimes (tensor, bandwidth,
PCIe, NVLink, idle), each held long enough to be visible at the console's
polling resolution, so every panel on the Metrics tab gets a recognizable
signature. gpu_metrics_multinode.py is the ClusteredTaskEnvironment variant,
one pod per node with an all-reduce phase so the cross-node interconnect shows
up too.

Both can end with a deliberate Xid 31 from an out-of-bounds Triton store, which
is how the GPU fault path gets exercised end to end: after_xid picks whether the
task then returns, raises, or exits outright, matching the three shapes a fault
takes by the time it reaches the console.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Samhita Alla <aallasamhita@gmail.com>
The Triton import is optional, so `tl` is `Unknown | None` and every use of it
read as an attribute on None. Guarding on both names narrows the kernel's
signature; the two lines inside the kernel body still need a suppression,
because that body runs at launch time and the checker resolves `tl` as a global
rather than the guarded value.

The accelerator request is a `str | int` by construction, since a bare number
asks for that many GPUs with no device pin, and that does not fit the literal
union `Resources.gpu` declares. Both examples carry the paired mypy and ty
suppression the rest of the codebase uses for this.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Samhita Alla <aallasamhita@gmail.com>

@cosmicBboy cosmicBboy left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@cosmicBboy
cosmicBboy enabled auto-merge (squash) September 3, 2026 01:15
@cosmicBboy
cosmicBboy merged commit da1e6cb into main Sep 3, 2026
64 checks passed
@cosmicBboy
cosmicBboy deleted the gpu-metrics-xid-modes branch September 3, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants