A small s**tstorm is heading your way, if you're in the business of running code on Intel computers.

Here's a sad story about the state of computing in 2019.
It'll take a couple of tweets, but it's actually kind of important (?), so please retweet so this gets proper attention:
For those of you who've been following me, You know I'm developing an AVX2 based sort that I'm running against C#'s own Array.Sort(), which is really the same as glibc's sort, std::sort etc.) and compiled in C++.

It's been 6 months, so let's just say I know its perf by heart.
Here's what it looked like Yesterday, vs. Today:

Those of you with keen eye-sight can immediately tell that something is awfully wrong here....
Array.Sort() is 20% (!) slower when sorting 10M numbers for example...
Note the while my own code happens to run roughly as fast as before, while Array.Sort(), compiled down to machine code in C++ is really not having a good time.

This is probably a good time to mention I'm on clearlinux which is a very bleeding edge Linux distro from Intel.
Here's a snippet from my /proc/cpuinfo:

Yesterday:
model: 158
model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
stepping: 9
microcode: 0xb4

Today:
model: 158
model name: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
stepping: 9
microcode: 0xc6
As you can see, I was blessed with microcode revision 0xc6.

Apparently, Intel are about to release a new μcode update, that I got slightly earlier than you rest.

This one, unlike previous ones, doesn't just affect syscalls, but is a tad more invasive:
https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf
Now, I happen to have gotten this update a tad earlier than the rest of you, since clearlinux is already been completely recompiled against this errata with a new patched up compiler that attempts to avoid placing conditional jumps around 32-byte boundaries.

But:
* 3rd party binaries are going to get a major penalty (Like CoreCLR in this case).

* JITs (C#, JVM, Chrome, NodeJS) need to be updated and patched pronto to not generate conditional jumps on said boundaries, or suffer the consequences.

Also:
And we're all doomed.

Have a nice day.
From your friends in Damage industries...
You can follow @damageboy.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: