perf: add nsys probes for PixelHistogramCUDA

perf/hist/ mirrors perf/cf/: a driver that runs each config under nsys,
the traced process, settings and a README. The fill (H2D + fill_bin_major
per frame) and the readout (bin_to_pixel_major + one D2H per values())
are reported separately. Only one chunk of frames is held in host memory
and re-queued until the requested frame count.

gpu_span.analyze() takes an optional engines subset, so the one-off
readout D2H doesn't count towards the fill window or roofline. Default
output is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
kferjaouiandClaude Opus 5.5 committed 2026-10-29 14:25:32 +01:00
1 parent 5489b68285
commit e80e552497
6 files changed
+348 -5

No files matched your search

+2 -1
View File
@@ -7,13 +7,14 @@ with its own driver, traced process, README and `results/`:
| folder | class |
|---|---|
| [`cf/`](cf/README.md) | `ClusterFinderCUDA` |
| [`hist/`](hist/README.md) | `PixelHistogramCUDA` |
Shared by all of them:
| file | role |
|---|---|
| `common.py` | paths (`AARE_REPO`, `AARE_BUILD`, `AARE_PERF_DATA`, `NSYS`), guards (fresh build, idle GPU), `env.json` stamp, results folder |
| `gpu_span.py` | reads an nsys SQLite export: busy time, duty cycle and roofline per engine, optionally for one kernel name only |
| `gpu_span.py` | reads an nsys SQLite export: busy time, duty cycle and roofline per engine, optionally for one kernel name and a subset of engines only |
Requirements (a CUDA build of the Python extension, Nsight Systems, the
dataset, an idle GPU) are listed in each folder's README.