-
Notifications
You must be signed in to change notification settings - Fork 38
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
Perf converter script to use JSON input on default #226
base: main
Are you sure you want to change the base?
Conversation
…hanges would apply to SKX and CLX
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.
nit: There's a typo in the commit message, extract rather than extrac
@captain5050 Does it make sense to continue running |
I'd defer to Weilin. She wanted me to look at these changes as a heads up, hopefully the final PR will not break the action. The action is nice in case an event update breaks the converter script |
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.
I think the period will be inserted by perf list, but if it is useful to do things this way to keep the metrics in sync across tools, I'm easy.
Hi @captain5050, do you mean the period in brief description? |
Hi @edwarddavidbaker, the new script from this PR will need to work with updated JSON input from Valkyrie. Currently, we have upload JSON input of the two platforms included in the PR as examples here. The rest of the platforms might trigger missing event or incorrect event errors like what we see in the check. |
This commit also includes changes to support 'GNR' and add a command line option to use choose use csv file for P-core.
Simplify threshold as well
…ove code readbility
6a7de3f
to
c6f0c2f
Compare
The commit message is updated. Thanks! |
Yeah, the introduction of the "." is causing a lot of diffs and perf-list will add the period when necessary in places like: |
6199569
to
ae7891a
Compare
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.
Discussed with Weilin. The script is currently failing on event uops_retired.retire_tma_info_thread_slots
used in Broadwell metrics JSON files. This will be fixed in an upcoming revision of the metric files.
public/perfmon/BDW/metrics$ grep -r 'uops_retired.retire_tma' ./
./broadwell_metrics.json: "BaseFormula": "( uops_issued.any - ( uops_retired.retire_tma_info_thread_slots ) + ( 4 ) * ( ( int_misc.recovery_cycles_any / 2 ) if smt_on else int_misc.recovery_cycles ) ) / tma_info_thread_slots",
./broadwell_metrics.json: "BaseFormula": "( uops_retired.retire_tma_info_thread_slots ) / tma_info_thread_slots",
./broadwell_metrics.json: "BaseFormula": "( ( uops_retired.retire_tma_info_thread_slots ) / uops_issued.any ) * idq.ms_uops / tma_info_thread_slots",
./perf/broadwell_metrics_perf.json: "MetricExpr": "( UOPS_ISSUED.ANY - ( uops_retired.retire_tma_info_thread_slots ) + ( 4 ) * ( ( INT_MISC.RECOVERY_CYCLES_ANY / 2 ) if #SMT_on else INT_MISC.RECOVERY_CYCLES ) ) / tma_info_thread_slots",
./perf/broadwell_metrics_perf.json: "MetricExpr": "( uops_retired.retire_tma_info_thread_slots ) / tma_info_thread_slots",
./perf/broadwell_metrics_perf.json: "MetricExpr": "( ( uops_retired.retire_tma_info_thread_slots ) / UOPS_ISSUED.ANY ) * IDQ.MS_UOPS / tma_info_thread_slots",
This is the initial code version to use JSON input for metrics. I'm creating this PR to collect inputs about the code change, for our transition from using spreadsheet to JSON. Please leave your comments and suggestions in this PR. Thank you very much!
I'm hoping to make this transition in two phases. In this first phase, the major goal is to keep both JSON and spreadsheet input work and make the output as close as possible.
In the second phase (after we achieving an agreement on the content and format of final output files), I will work on optimizing the code.
Changes:
On default, the script would use the metric JSON files for each platform. To use the spreadsheet as before, please add option --csv(/-c).
There are a lot of changes in the final metric output files. Some of them are caused by the change of input. There also are changes that we added in intentionally. An example is the new tags added in MetricGroup field, like Slots and Clocks. These are content from the CountDomain column.
The following is a list of these tags: "Clocks, Clocks_Calculated, Clocks_Estimated, Clocks_Latency, Core_Clocks, Core_Execution, Core_Metric, Core_Utilization, Count, Fraction, GB/sec, Inst_Metric, MB/sec, Metric, NanoSeconds, Scaled_Slots, Slots, Slots_Estimated, Stalls, SystemMetric, Uops"