LLNL / Caliper

Caliper is an instrumentation and performance profiling library
http://software.llnl.gov/Caliper/
BSD 3-Clause "New" or "Revised" License
343 stars 63 forks source link

Refactors topdown service to support multiple types of calculations and adds support for Sapphire Rapids #576

Open ilumsden opened 1 month ago

ilumsden commented 1 month ago

This PR refactors the topdown service to allow it to be easily extended to support top-down calculations for processors besides Haswell/Broadwell. To do this, I've made the following changes:

This PR also uses this new infrastructure to add support for Sapphire Rapids and Emerald Rapids CPUs. The calculations for these CPUs were obtained from Intel's perfmon repo, specifically the following file: https://github.com/intel/perfmon/blob/main/SPR/metrics/perf/sapphirerapids_metrics_perf.json. The support added by this PR only covers the first two levels of the top-down hierarchy. In the future, this could be expanded to cover as much of the 6 levels for Sapphire Rapids as desired.

This PR is still work-in-progress. The following tasks need to be completed before this is ready for review:

ilumsden commented 1 month ago

In the future, it might be useful to consider embedding archspec-json if more architecture-specific features are added to Caliper.

ilumsden commented 6 days ago

Outstanding work on this PR: