[llvm] [AArch64] Initial sched model for Neoverse N3 (PR #106371)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 12 02:22:55 PDT 2024
https://github.com/davemgreen approved this pull request.
> Thanks. Now I only keep ReleaseAtCycles for "Divide, [WX]-form".
>
> In the N3 SWOG, only integer divides are performed using an iterative algorithm and operations like "FP divide and square root", "ASIMD FP divide and square root", etc are now performed using a fully pipelined data path.
Yeah that is nice. Thanks for the updates, I managed to run some testing and it looked OK. It took a little while to set up but the performance, overall, was a very slight improvement (but that might be in the realms of noise). It helps validate that nothing is going too wrong with the new numbers.
I have some suggestions mostly about the number of L pipes used in certain operations. I don't think I would worry too much about hitting the throughput numbers in the SWOG exactly so long as they are close. There can be other things other than number of micro-ops that can cause bottlenecks that are not modelled as well in the scheduler. It probably makes more sense to try and keep the micro-ops sensible.
If you can make these adjustments then this LGTM. Thanks for working on this and making the changes.
https://github.com/llvm/llvm-project/pull/106371
More information about the llvm-commits
mailing list