mastodon.gamedev.place is one of the many independent Mastodon servers you can use to participate in the fediverse.
Mastodon server focused on game development and related topics.

Server stats:

5.1K
active users

By request, my usual "the least interesting part about AVX-512 is the 512 bits vector width" infodump in thread form.

So here goes, a laundry list of things introduced with AVX-512 that I think are way more important to typical use cases than the 512-bit vectors are:

@rygorous how good are compilers at emitting all of that? Or is all this goodness locked away for people hand tuning their code?

@BuschnicK pretty much everything I've noted is extremely easy for compilers to use and they've been doing it well since around 2015-16

@BuschnicK half the things I mentioned are filling in potholes in SSE*/AVX* that compilers have had to work around for decades when vectorizing. E.g. lack of unsigned vector compares, uint<->float conversions, vector rotates, word-sized variable shifts, two-input shuffles, good downconverts are all things compilers already had in their IR for over a decade and were forced to codegen to multi-instruction expansions because the actual ISA didn't have it.

Fabian Giesen

@BuschnicK These are all things that were already in say LLVM IR long before AVX-512 came around, they just needed to be lowered into multiple instructions (sometimes quite a lot of them, e.g. for float<->uint conversions) which then made things like cost/benefit analysis for autovect pre-AVX512 much harder because the instruction set was so irregular