[PATCH] D52779: AMD BdVer2 (Piledriver) Initial Scheduler model
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Oct 3 09:55:29 PDT 2018
RKSimon added inline comments.
================
Comment at: lib/Target/X86/X86.td:1025
// Piledriver
-def : Proc<"bdver2", [
+def : ProcessorModel<"bdver2", BdVer2Model, [
FeatureX87,
----------------
courbet wrote:
> RKSimon wrote:
> > lebedev.ri wrote:
> > > craig.topper wrote:
> > > > Should we apply this to bdver3/4 as well? Are they similar?
> > > Hmm. It would be ok to apply this to bdver1.
> > >
> > > But i'm not sure about steamroller/excavator.
> > > Those are more different, have loop buffer, 3 FPU pipes instead of 4, etc.
> > I'd expect it to help all bdver targets - but as @lebedev.ri said the arch is slightly different on bdver3/bdver4 - for instance the exegesis pfms for the pipe resources won't work correctly (and may crash).
> >
> > We have the same problem with the generic x86_64 cpu which expects SNB pfms - @courbet how tricky would it be to attach the pfm counters to a set of CPUs instead of the scheduler model? This might even help creation of new models if we can get pfm (cycles/uops) data from cpus without a model.
> > how tricky would it be to attach the pfm counters to a set of CPUs instead of the scheduler model
>
> The main reason why I added pfm counters to the sched model is that we want analysis to be able to match counters to resource names.
> e.g. `PfmIssueCounter<SBPort0, ["uops_dispatched_port:port_0"]>;` binds the counter to SBPort0, and the TD resolver automatically checks that SBPort0 exists in the correct sched model.
>
> What we could do is:
>
> - move the `PfmCountersInfo` out of `MCSubtargetInfo`->`MCSchedModel`->`MCExtraProcessorInfo` and put it in `MCSubtargetInfo` directly.
> - make `SchedModel` optional and take the resource as a string in `PfmIssueCounter` ( `PfmIssueCounter<"SBPort0", ["uops_dispatched_port:port_0"]>;`), and do the resolving/checking in the SubtargetEmitter **only if** the subtarget has a sched model.
>
> Sounds reasonable ?
>
>
Yes, creating a mapping index from cpu to a pfm table list should work - it would allow cpus to share models and have their own counters to map to the models resources (some may be partial) - PR37068 could probably be dealt with at the same time.
Repository:
rL LLVM
https://reviews.llvm.org/D52779
More information about the llvm-commits
mailing list