Skip to content

ui: GpuCompute: correct the Summary tab and rename Workload Analysis - #7242

Open
zytyz wants to merge 4 commits into
google:mainfrom
zytyz:dev/zytyz/gpu_compute_section_rename
Open

ui: GpuCompute: correct the Summary tab and rename Workload Analysis#7242
zytyz wants to merge 4 commits into
google:mainfrom
zytyz:dev/zytyz/gpu_compute_section_rename

Conversation

@zytyz

@zytyz zytyz commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Small fixes so a vendor plugin can register its own metrics into the
GpuCompute tab.

  • Fix the Summary tab so a dependent plugin's metric ids reach it. The
    prefetch ran before those plugins had registered, so the columns came out
    empty and stayed empty.

  • Scale the compute and memory throughput bars against the hardware peak
    rather than the largest value in the table, and label them with a percent
    sign. On a capture spanning 0.03% to 0.93% of peak, a kernel at the mean
    0.47% filled 51% of its bar, and the busiest always pinned at 100%.

  • Rename "Workload Analysis" to "Compute Workload Analysis". It covers
    per-pipeline compute utilization only, and the plain name collides with the
    memory counterpart a vendor plugin registers alongside it.

  • Rename the matching workflow in the Perfetto agent skill, so an agent and a
    user read one name for one section.

zytyz added 4 commits August 26, 2026 13:23
The section holds per-pipeline compute utilization only. The plain name
"Workload Analysis" does not say which part of the workload it covers,
and it collides with a memory counterpart that vendor plugins register
alongside it.

The file name, the section id and the registration function follow the
title. The metric rows and the analysis prompt do not change.
The GpuCompute details view calls this lens Compute Workload Analysis. The
agent skill still called it Workload Analysis, so an agent and a user read
two names for one section.

The generic workflow, the NVIDIA extraction and its query file take the new
name, and every link and prose reference follows. The interpretation rules
and the SQL do not change.
The Summary tab builds its query from the well-known metric roles. It runs
that query at the end of onTraceLoad. A plugin that depends on
GpuComputePlugin registers its own metric ids in its own onTraceLoad, which
the plugin manager runs later. Those ids are therefore absent from the
query, and the compute-throughput and memory-throughput columns stay empty
for that plugin's hardware, even though the details tables show the values.

The query now runs on onTraceReady, after every plugin has registered. The
cached rows start as undefined, so a tab that opens before the query ends
runs its own query instead of keeping an empty table.
The Summary tab draws every column against the largest value in the
table. That suits duration, register count and grid size, which have no
upper bound. It does not suit the two throughput columns, which are
already a percentage of a hardware peak.

The error is invisible on a busy workload and severe on an idle one. On
an MTIA capture whose memory throughput spans 0.03 to 0.93 percent of
peak, a kernel at the trace mean of 0.47 percent fills 51 percent of its
bar, because it is measured against the busiest kernel in the trace
rather than against the hardware.

The two throughput columns now render against 100, and label the bar
with the value and a percent sign, so that kernel reads "0.47%" on a bar
filled to 0.47 percent.
@zytyz
zytyz requested a review from a team as a code owner August 26, 2026 22:29
@zytyz

zytyz commented Aug 26, 2026

Copy link
Copy Markdown
Contributor Author

@dreveman ptal. Thanks!

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