llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.63k stars 11.83k forks source link

Add a scheduling model for Nehalem #36855

Open jrmuizel opened 6 years ago

jrmuizel commented 6 years ago
Bugzilla Link 37507
Version trunk
OS All
Blocks llvm/llvm-project#31672
CC @adibiagio,@legrosbuffle,@topperc,@gchatelet,@RKSimon,@rotateright

Extended Description

~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?

jrmuizel 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.

RKSimon 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

topperc 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.