llvm / llvm-project

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

[X86] Atom scheduler generating incorrect throughputs and latencies #36243

Open topperc opened 6 years ago

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

Extended Description

There's lots of incorrect information

For example, ADDPS should have a latency of 5 and throughput of 1, but the scheduler test shows llvm reporting latency 5 and throughput 5.

llvm reports latency 125 and throughput 62.5 for sqrtpd, but I think it really should be a throughput of 124 or 125.

I think there are a lot more issues like this.

RKSimon commented 2 years ago

Results are weird. It may be that the we're frontend bound on this CPU.

Part of the problem seems to be due to Atom (and Silvermont etc) struggling to efficiently decode the longer SSE instruction encodings that reference the upper xmm8-xmm15 registers.

RKSimon commented 2 years ago

D525 - llvm-exegesis report Attached is a recent exegesis run of latency, uops and inverse_throughput on a 64-bit D525 'Pineview' atom cpu

gchatelet commented 6 years ago

Latency YAML file

RKSimon commented 6 years ago

Thanks Guillaume - do you have the raw latency/uops yaml data please?

gchatelet commented 6 years ago

Results are weird. It may be that the we're frontend bound on this CPU.

gchatelet commented 6 years ago

I finally got it to run. I attached the report to the bug.

gchatelet commented 6 years ago

Bonnel inconsistencies

gchatelet commented 6 years ago

I have a DiamondVille which is first generation Bonnell according to wikipedia. I'll report here when we have it running.

RKSimon commented 6 years ago

@​gchatelet I think you mentioned you have access to some Bonnell era atom hardware - have you been able to get llvm-exegesis running on it?

RKSimon commented 6 years ago

Bug llvm/llvm-bugzilla-archive#36792 has been marked as a duplicate of this bug.