Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

Add a scheduling model for Nehalem #36480

Open Quuxplusone opened 6 years ago

Quuxplusone commented 6 years ago
Bugzilla Link PR37507
Status NEW
Importance P enhancement
Reported by Jeff Muizelaar (jmuizelaar@mozilla.com)
Reported on 2018-05-17 10:32:30 -0700
Last modified on 2018-06-14 14:03:13 -0700
Version trunk
Hardware PC All
CC andrea.dibiagio@gmail.com, andrew.v.tischenko@gmail.com, clement.courbet@gmail.com, craig.topper@gmail.com, gchatelet@google.com, llvm-bugs@lists.llvm.org, llvm-dev@redking.me.uk, spatel+llvm@rotateright.com
Fixed by commit(s)
Attachments
Blocks PR32325
Blocked by
See also

~40% of Firefox users don't have AVX. This is rough proxy for machines that are older than Sandybridge.

It would be nice to have a scheduling model for older machines even if just for use with llvm-mca. Perhaps llvm-exegesis can make producing it easier?

Quuxplusone commented 6 years ago
The "~40% of Firefox users don't have AVX" is a little unclear because I'm not
sure how its being measured. There could be these others factors at play too.

-Intel sells CPUs without AVX support even on recent architectures. For
example, https://ark.intel.com/products/129945/Intel-Pentium-Gold-G5600-
Processor-4M-Cache-3_90-GHz. This looks to be Coffee Lake derived, but only has
SSE4.2.
-No Atom CPU supports AVX.
-AVX is only supported by Windows 7 SP1 and newer.
Quuxplusone commented 6 years ago

Jeff - are you building separate executables (or individual functions) for different SSE/AVX levels?

Or is this purely from the point of view of building and scheduling for the lowest feature set supported (and what would that be)?

In comparison, the Steam Survey puts SSSE3 usage at 97%, SSE41 at 95% and SSE42 at 93%. Although that's for gamers as opposed to general web browsing.

https://store.steampowered.com/hwsurvey

Quuxplusone commented 6 years ago

I'm using the telemetry data from bottom of here: https://dvander.github.io/moz-gfx-telemetry/#view=system

We don't build different builds for different micro architectures, but Nehalem seems like a reasonable middle of the road target. It's not so old as to be completely different from more modern cores but old enough that those who use something of that generation will be able to use all the performance that they can get.