This is an archive of the discontinued LLVM Phabricator instance.

[X86] Add schedule module for Gracemont
Changes PlannedPublic

Authored by HaohaiWen on Feb 20 2023, 6:37 AM.

Details

Reviewers
None
Summary

The X86ScheduleGRT.td file is automatically generated by schedtool
(D130897). Some of instruction's scheduling information is based on
measured ADL-P data in uops.info.

Diff Detail

Event Timeline

HaohaiWen created this revision.Feb 20 2023, 6:37 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 20 2023, 6:37 AM
HaohaiWen requested review of this revision.Feb 20 2023, 6:37 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 20 2023, 6:37 AM
HaohaiWen planned changes to this revision.Feb 20 2023, 6:38 AM
goldstein.w.n added inline comments.
llvm/lib/Target/X86/X86.td
1082

Imo GMT is more sensible than GRT.

llvm/lib/Target/X86/X86ScheduleGRT.td
73

Is this correct?

537

According to uops.info its 9c.

Would this be a good time to add alderlake-p and alderlake-e cpu name aliases as well?

llvm/lib/Target/X86/X86.td
1082

+1 GMT is more commonly used for Gracemont already

1576

This might be better to put next to the other atom cores?

HaohaiWen added inline comments.Feb 21 2023, 6:15 PM
llvm/lib/Target/X86/X86.td
1082

As I know, GRT is the common abbreviation for Gracemont in Intel.
TRT is Tremont. not TNT in llvm.

llvm/lib/Target/X86/X86ScheduleGRT.td
73

Max lat for ADD (R32 M32) is 5 in uops.info. The extra load latency is 4.

537

Instructions using this schedule write may be overwrite by InstRW.
This 4 cycles is the most common value for all instructions using this SchedWrite.

Would this be a good time to add alderlake-p and alderlake-e cpu name aliases as well?

This model is not yet complete, we still miss lots of port/lat. (see // FIXME: Incompleted schedwrite. and GRTPortInvalid)

Should we rename alderlake-p to other name like alderlake-pc. Alder Lake P is also product series name (https://www.intel.com/content/www/us/en/products/platforms/details/alder-lake-p.html).

Would this be a good time to add alderlake-p and alderlake-e cpu name aliases as well?

This model is not yet complete, we still miss lots of port/lat. (see // FIXME: Incompleted schedwrite. and GRTPortInvalid)

Should we rename alderlake-p to other name like alderlake-pc. Alder Lake P is also product series name (https://www.intel.com/content/www/us/en/products/platforms/details/alder-lake-p.html).

Adding extra aliases is cheap (e.g. sandybridge vs corei7-avx etc.), but we can keep the alderlake-p as the default

Matt added a subscriber: Matt.Mar 6 2023, 12:34 PM
asb added a subscriber: asb.Jun 4 2023, 9:58 PM