Parent: #478. Related: #479-#488 #498.
Wall-clock and Python/native attribution are not enough to distinguish compute, memory, branch and vectorization failures. Add Linux perf/PMU profiling where available and equivalent macOS sampling/counter evidence where practical.
Capture cycles, instructions/IPC, branch misses, cache misses, vectorization/code-shape evidence and hot symbols for each canonical losing operation, with a portable fallback when counters are unavailable. Normalize interpretation by work units rather than comparing raw counters across machines.
Acceptance: every current canonical loss has a saved hot-symbol/profile report; issues #479-#488 cite the dominant bottleneck class before optimization; post-fix profiles demonstrate whether the intended bottleneck actually moved.
Parent: #478. Related: #479-#488 #498.
Wall-clock and Python/native attribution are not enough to distinguish compute, memory, branch and vectorization failures. Add Linux perf/PMU profiling where available and equivalent macOS sampling/counter evidence where practical.
Capture cycles, instructions/IPC, branch misses, cache misses, vectorization/code-shape evidence and hot symbols for each canonical losing operation, with a portable fallback when counters are unavailable. Normalize interpretation by work units rather than comparing raw counters across machines.
Acceptance: every current canonical loss has a saved hot-symbol/profile report; issues #479-#488 cite the dominant bottleneck class before optimization; post-fix profiles demonstrate whether the intended bottleneck actually moved.