Commit b0abf52
DCPerf: drop corrupt first perf interval from AMD report
Summary:
On Turin (AMD EPYC 9D25 / Zen5), DCPerf `sleepbench` `overall-metrics.csv` reported a DRAM Read BW of ~620 GB/s — above the part's 512 GB/s physical ceiling.
Root cause: the first `perf stat -I` interval is corrupt. The uncore/DF memory-controller counters report a cumulative startup value on their first read, and the first interval's duration is often irregular, so its derived rate (~2,454 GB/s here, ~4.8x the max) is physically impossible. Nothing dropped or clamped that first sample before it was averaged into the summary.
Fix in `perfutils/generate_amd_perf_report.py`: add `drop_first_interval()`, called in `main()` after metrics are built and before aggregation/timeseries emission. It drops the first interval (`num_sockets` rows, one per socket) from every metric series so the summary and the timeseries stay aligned and physically meaningful. Short runs (series <= `num_sockets`) are left untouched to avoid collapsing to empty.
Excluding the first sample, sustained DRAM read ~252 GB/s (valid).
[Session trajectory link](https://www.internalfb.com/intern/devai/devmate/inspector/?id=8ff846bd-428a-4c33-8fa7-3c6264d4c96a)
Differential Revision: D1107984701 parent 2f5051e commit b0abf52
1 file changed
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2303 | 2303 | | |
2304 | 2304 | | |
2305 | 2305 | | |
| 2306 | + | |
| 2307 | + | |
| 2308 | + | |
| 2309 | + | |
| 2310 | + | |
| 2311 | + | |
| 2312 | + | |
| 2313 | + | |
| 2314 | + | |
| 2315 | + | |
| 2316 | + | |
| 2317 | + | |
| 2318 | + | |
| 2319 | + | |
| 2320 | + | |
| 2321 | + | |
| 2322 | + | |
| 2323 | + | |
2306 | 2324 | | |
2307 | 2325 | | |
2308 | 2326 | | |
| |||
2599 | 2617 | | |
2600 | 2618 | | |
2601 | 2619 | | |
| 2620 | + | |
| 2621 | + | |
2602 | 2622 | | |
2603 | 2623 | | |
2604 | 2624 | | |
| |||
0 commit comments