-
Notifications
You must be signed in to change notification settings - Fork 75
2024.10.17 preset extensions #284
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
2024.10.17 preset extensions #284
Conversation
935ea80 to
eaa020e
Compare
b57602c to
6c536d1
Compare
1212e11 to
6406ed1
Compare
34fb833 to
c8727c1
Compare
de36142 to
a4c22a4
Compare
1c3178f to
2d0d73c
Compare
|
Please do not merge yet. |
jagode
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we already have PAPI_L3-related presets, I’m not a fan of introducing a second set of L3-related events just because the native events now come from a different component (uncore, in this case). That is an internal technical detail that users shouldn’t have to worry about. It could create confusion if the original L3 presets are not defined while the new, slightly different L3-uncore presets are defined.
@adanalis : What do you think?
2d0d73c to
ee66986
Compare
511a569 to
0d7f082
Compare
0d7f082 to
049bf95
Compare
049bf95 to
b6b2203
Compare
b6b2203 to
82887a3
Compare
Create fields in the vector struct for components to define presets. These changes have been tested on the NVIDIA Hopper architecture.
Add functions to facilitate CUDA presets. These changes have been tested on the NVIDIA Hopper architecture.
Update configure to track both the number of presets per component and the arrays of presets belonging to each component. These changes have been tested on the NVIDIA Hopper architecture.
Updates to framework to facilitate preset events defined by native events of non-perf_event components. These changes have been tested on the NVIDIA Hopper architecture.
This is an aesthetic change to improve the development process. These changes have been tested on the NVIDIA Grace-Hopper architecture.
Replace modifiers with only those that enumerate the CPU preset events. These changes have been tested on the NVIDIA Grace-Hopper architecture.
Enumerate presets for components as well as the CPU. These changes have been tested on the NVIDIA Grace-Hopper architecture.
82887a3 to
c214d8c
Compare
PR #284 introduced code that always forced the initialization of all components. However, this defeats the purpose of having PAPI_EDELAY_INIT. The changes in this pull request only force initialization of components when necessary. These changes have been tested on systems containing: - NVIDIA Hopper architecture - AMD Zen3 CPU and AMD MI250X GPU architectures (Frontier).
Pull Request Description
This PR adds support for presets defined using native events from non-CPU components. The only component that has been modified in this PR is the 'cuda' component, which is limited to loading the preset table for 'cuda' presets.
These changes have been tested on the NVIDIA Grace-Hopper architecture.
Author Checklist
Why this PR exists. Reference all relevant information, including background, issues, test failures, etc
Commits are self contained and only do one thing
Commits have a header of the form:
module: short descriptionCommits have a body (whenever relevant) containing a detailed description of the addressed problem and its solution
The PR needs to pass all the tests