Feature: Introduce "Effective Load" metric (power-normalized usage)#423
Feature: Introduce "Effective Load" metric (power-normalized usage)#423Syllo merged 4 commits intoSyllo:masterfrom
Conversation
Introduces a new 'Effective Load' metric, calculated as GPU Load weighted by power consumption (Current Power / Max Power). This provides a more accurate representation of hardware throughput, especially in low P-States. - Updates 'gpuinfo_dynamic_info' to store effective_load_rate. - Implements calculation logic in 'extract_gpuinfo.c'. - Adds 'Eff. Load' display to the device header in the ncurses interface. - Adds 'Effective load rate' as a selectable metric in the Chart setup menu and handles config persistence.
|
I noticed a defect/oversight in this initial implementation. Before I push the fix and polish the code, I wanted to confirm if the “effective load” concept is something you are interested in merging. If the feature aligns with your goals for |
|
Update regarding the defect I mentioned: Good news: I performed a clean fetch of I tracked down the regression to commit d955f94 (specifically in Specifically, the logic change here seems to be the culprit: nvtop/src/extract_gpuinfo_nvidia.c Lines 645 to 648 in 4bf5db2 I will open a separate issue to track that bug so we can keep this PR focused on the “Effective Load” feature. |
|
I added a follow-up commit to clamp the effective load value to 100%. I realized that during transient power spikes or scenarios where power limits are raised (overclocking), the |
|
Thanks a lot for this, I think it's a really helpful metric to have |


Description
This PR implements the “Effective Load” metric discussed in Issue #422.
The goal is to provide a more realistic representation of GPU usage by weighting the
GPU Loadagainst the current power consumption relative to the TDP.Technical Implementation
1. Data Extraction (
extract_gpuinfo.c)I added a helper function
calculate_effective_loadthat runs after the standard dynamic info refresh.Effective Load = GPU_Util_Rate * (Power_Draw / Power_Draw_Max)power_draw,power_draw_max, andgpu_util_rateare valid and greater than zero. If the driver (e.g., some AMD/Intel implementations) does not providePower_Draw_Max, the field remains unset/invalid.2. Interface (
interface.c)Eff. XX%.Eff. N/A.3. Plotting & Options (
interface_options.c,interface_setup_win.c)plot_effective_load_rateto the plotting enum.Screenshots
Testing
I have tested this on my local machine.
I look forward to your feedback.