You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I could not find a supported NVIDIA interface that exposes time-resolved performance-monitor samples for each globally identifiable physical SM/SMSP instance (for example, <physical SM ID, SMSP ID, timestamp, activity>).
The existing tools provide valuable but different views:
nvidia-smi reports aggregate GPU utilization.
Nsight Compute sm__* / smsp__* metrics generally expose rollups such as sum/average/min/max.
smsp__warpidsamp_* exposes documented <SMSP ID>:<Warp ID> instance keys, but no physical SM coordinate. On my test system, output such as 0:0, 0:4, 0:8, and 0:12 was useful for scheduler research but could not identify 680 physical SMSPs across the chip.
CUPTI/PM sampling provides a timeline, but I could not find a supported way to retain a globally identifiable physical SM/SMSP coordinate for every sample.
PTX exposes %smid and %warpid, but no %smspid; in-kernel instrumentation is intrusive and is not equivalent to reading performance-monitor utilization.
An RTX 5090 has 170 enabled SMs and four SMSPs per SM: 170 × 4 = 680 = 34 × 20. The project launches 170 cooperative CTAs, limits occupancy to one CTA per SM, and uses four warps per CTA to encode a 34×20 binary animation as FP32 issue activity versus nanosleep.
The included placement and contention probes establish:
simultaneous sampled coverage of 170/170 SMs;
four distinct physical warp slots per CTA;
on the tested GB202, warps 0/1/2/3 do not contend while 0/4/8/12 do, supporting the empirical formula SMSP = physical_warpid & 3 for this exact stack.
However, the experiment cannot observe the resulting 680-channel physical activity pattern through a supported NVIDIA monitor. The visible output has to be reconstructed through application instrumentation, which is precisely what the requested monitor would avoid.
Research notes, including PTX/SASS special-register probes and Nsight Compute sampling output:
Could NVIDIA expose an authorized, documented profiler/CUPTI mode that provides:
a stable per-capture physical SM instance ID;
the SMSP/scheduler index within that SM;
timestamped activity, issued-instruction, active-warp, or programmable-trigger samples;
clear documentation of aggregation, sampling, replay, and identifier lifetime;
an offline/privileged mode if unrestricted access would create performance-counter security concerns?
This does not need to be a CUDA programming-model affinity guarantee, nor does it need to permit warp placement control. A profiler-only observation interface would be sufficient.
If this belongs to the user-mode Nsight Compute/CUPTI stack rather than the open kernel modules, please point me to the correct public feature-request tracker. I am posting here because the repository's issue configuration directs feature requests to the Ideas discussion category, and the necessary per-instance counter plumbing may cross the driver boundary.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
I could not find a supported NVIDIA interface that exposes time-resolved performance-monitor samples for each globally identifiable physical SM/SMSP instance (for example,
<physical SM ID, SMSP ID, timestamp, activity>).The existing tools provide valuable but different views:
nvidia-smireports aggregate GPU utilization.sm__*/smsp__*metrics generally expose rollups such as sum/average/min/max.smsp__warpidsamp_*exposes documented<SMSP ID>:<Warp ID>instance keys, but no physical SM coordinate. On my test system, output such as0:0,0:4,0:8, and0:12was useful for scheduler research but could not identify 680 physical SMSPs across the chip.%smidand%warpid, but no%smspid; in-kernel instrumentation is intrusive and is not equivalent to reading performance-monitor utilization.Reproducer / motivating experiment
Project: https://github.com/Loong0x00/rtx5090-smsp-badapple
An RTX 5090 has 170 enabled SMs and four SMSPs per SM:
170 × 4 = 680 = 34 × 20. The project launches 170 cooperative CTAs, limits occupancy to one CTA per SM, and uses four warps per CTA to encode a 34×20 binary animation as FP32 issue activity versusnanosleep.The included placement and contention probes establish:
SMSP = physical_warpid & 3for this exact stack.However, the experiment cannot observe the resulting 680-channel physical activity pattern through a supported NVIDIA monitor. The visible output has to be reconstructed through application instrumentation, which is precisely what the requested monitor would avoid.
Research notes, including PTX/SASS special-register probes and Nsight Compute sampling output:
https://github.com/Loong0x00/rtx5090-smsp-badapple/blob/main/research/SM120_HIDDEN_REGISTERS.md
Feature request
Could NVIDIA expose an authorized, documented profiler/CUPTI mode that provides:
This does not need to be a CUDA programming-model affinity guarantee, nor does it need to permit warp placement control. A profiler-only observation interface would be sufficient.
If this belongs to the user-mode Nsight Compute/CUPTI stack rather than the open kernel modules, please point me to the correct public feature-request tracker. I am posting here because the repository's issue configuration directs feature requests to the Ideas discussion category, and the necessary per-instance counter plumbing may cross the driver boundary.
Environment
All reactions