-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactors topdown service to support multiple types of calculations and adds support for Sapphire Rapids #576
Conversation
In the future, it might be useful to consider embedding archspec-json if more architecture-specific features are added to Caliper. |
Outstanding work on this PR:
|
This PR is fully tested on Poodle and is now ready for review. There are only a few outstanding things left, namely adding documentation. |
d97ca7b
to
20f37a0
Compare
Hi @ilumsden, there's a new change in Caliper this week that breaks up the giant option spec string in |
…ll calculations and Sapphire Rapids/Emerald Rapids calculations
…like architecture support
… based on architecture specified at configure time
…se that configuration in the topdown service
…of raw counter values
… making new topdown calculators
… in TopdownCalculator
@daboehme I've worked that change into the PR. I did have to make one small change to that mechanism to handle architecture detection. I had to move where |
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:
TopdownCalculator
base class to represent calculations for different processorsHaswellTopdown
class, which inherits fromTopdownCalculator
IntelTopdown
to offload all the computation and associated tracking to a pointer to aTopdownCalculator
objectThis 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:
TopdownCalculator
child class to use in the topdown servicetopdown
built-in option