Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Curious Undisclosed Skylake Bug (outerproduct.net)
68 points by todsacerdoti on Feb 6, 2023 | hide | past | favorite | 13 comments


> On a system which has the bug, it should print two large numbers and two small numbers; on a system which does not have the bug, it should print one large number and three small numbers.

I built and ran the provided code on an AMD Zen 4 CPU, and it printed "two large numbers and two small numbers", so could this bug also be present in other microarchitectures implementing AVX-512 other than Skylake(-X)?


Interesting; certainly sounds plausible. What happens if you replace '#define COMP "vcompressps"' with '#define COMP "vexpandps"'?


With that change, no meaningful difference in the results from what I can tell: the program still prints two large integers (around 420M) and two smaller ones (around 85M).


Skylake, according to rumors, is absolutely infested with bugs. True or not, an ex-Intel engineer said the number of bugs actually tipped Apple over the edge [1], and I personally suspect that Windows 11 requiring Intel 8th Gen could, partially, be a move against having to maintain Skylake compatibility (or at least a move against claiming that it is "supported"). See also macOS 13 cutting off Skylake support for a minimum of Kaby Lake (2017 and newer) [3]. See also Windows 7 announcing in 2017 they would not be adding Skylake support because it was too much work [4].

[1] https://www.pcgamer.com/intel-skylake-why-apple-left/

[2] https://www.google.com/search?client=safari&rls=en&q=skylake...

[3] https://support.apple.com/en-us/HT213264

[4] https://www.computerworld.com/article/3025399/microsoft-wont...


This is not the first one.

Skylake (and a few others) have a "well-known" false dependency bug in popcnt.

It's listed in the skylake erratum as "POPCNT Instruction May Take Longer to Execute than Expected".


Wonder if breaking the dependency would be a workaround?


Yes; reuse the source, or use something it depends upon, or zero the destination ahead of time.


Does false dependency count as bug?


Intel will list them as errata if you beat them up enough. They rarely fix them.

POPCNT false dependency on sky lake was never fixed, we just ended up with compilers inserting useless xor's before popcnt to break dependencies.


Kinda.

Not like it'd produce a wrong result, but you could say it's a bug (presumably) in the out-of-order scheduler.


Exactly: It's a performance bug not a correctness bug.


That's interesting. Which Intel gen is Skylake?


6000 series, but the core architecture itself was used through the 10000 series




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: