Live data from Hacker News

Fast bitset decoding using Intel AVX-512

lemire.me

1–10 of 20 posts

Re: Fast bitset decoding using Intel AVX-512

#3
cool stuff! I was trying to do something similar on Arm Neon (m1 pro) with the CNT instruction https://developer.arm.com/documentation/ddi0596/2020-12/SIMD...

I believe it does 128 bits per instruction, but I'm still struggling with rust w/ asm.

Along my journeys, however, I found this repo https://github.com/WojciechMula/sse-popcount/ which has tons of competing simd implementations for both intel and arm.

Re: Fast bitset decoding using Intel AVX-512

#4
I think this is the fourth time I've seen this on the front page this week [1][2][3] - it was actually kind of spooky the first time, as I'd just found the author's page after looking into their work on doing SIMD-based processing of other things, and here they were turning up on the front page within 24h.

[1] - https://news.ycombinator.com/item?id=31312175

[2] - https://news.ycombinator.com/item?id=31289483

[3] - https://news.ycombinator.com/item?id=31337165

Re: Fast bitset decoding using Intel AVX-512

#5
post #2

I would prefer assembly code than C intrinsics (I usually go for the intel syntax).

I've recently become convinced intrinsics have a strong reason to at least try them after I rewrote something that was using inline ASM into intrinsics 1:1, and got a not-insignificant speedup, evidently solely because the compiler was better at optimizing it than I was.

Re: Fast bitset decoding using Intel AVX-512

#6

I think this is the fourth time I've seen this on the front page this week [1][2][3] - it was actually kind of spooky the first time, as I'd just found the author's page after looking into their work on doing SIMD-based processing of other things, and here they were turning up on the front page within 24h. [1] - https://news.ycombinator.com/item?id=31312175 [2] - https://news.ycombinator.com/item?id=31289483 [3] - ht…

The question is why you were looking at SIMD based processing, maybe you got triggered by another HN post, which triggers this post being reposted more often.

We're each cells in a neutral meta network, triggering each other.

Re: Fast bitset decoding using Intel AVX-512

#7
It's sad that Intel isn't rolling out AVX-512 more consistently, especially now that their new 10nm process doesn't have such as big clock frequency penalty for using these wide instructions.

If the rumours are true that AMD Zen 4 will have AVX-512, then it'll be yet another sad corporate failure of watching a small underdog competitor show you how you are supposed to be managing your own flagship products...

Re: Fast bitset decoding using Intel AVX-512

#8
post #2

I would prefer assembly code than C intrinsics (I usually go for the intel syntax).

If you use intrinsics, you don't have to deal with the different calling conventions of each operating system, so I have used intrinsics for that reason alone, since I otherwise had to write separate versions for Linux and Windows or have a lot of conditional code.

Re: Fast bitset decoding using Intel AVX-512

#9

It's sad that Intel isn't rolling out AVX-512 more consistently, especially now that their new 10nm process doesn't have such as big clock frequency penalty for using these wide instructions. If the rumours are true that AMD Zen 4 will have AVX-512, then it'll be yet another sad corporate failure of watching a small underdog competitor show you how you are supposed to be managing your own flagship products...

I've read that the value of avx512 as separate instructions isn't high, and this kind of confirms it - a 20% speedup[1] over the next best (ns/value) isn't spectacular and seems to bring a large cost in terms of complexity like dropping the clock (and are there really 512-wide paths on the chip?) and just a bunch of new instructions. Perhaps deep pipelining would have been better based on existing instrructions.

Can anyone with actual hardware experience comment?

[1] Have I got that wrong? Is it 25%

(edited to de-screw formatting)*

Re: Fast bitset decoding using Intel AVX-512

#10
post #9

It's sad that Intel isn't rolling out AVX-512 more consistently, especially now that their new 10nm process doesn't have such as big clock frequency penalty for using these wide instructions. If the rumours are true that AMD Zen 4 will have AVX-512, then it'll be yet another sad corporate failure of watching a small underdog competitor show you how you are supposed to be managing your own flagship products...

I've read that the value of avx512 as separate instructions isn't high, and this kind of confirms it - a 20% speedup[1] over the next best (ns/value) isn't spectacular and seems to bring a large cost in terms of complexity like dropping the clock (and are there really 512-wide paths on the chip?) and just a bunch of new instructions. Perhaps deep pipelining would have been better based on existing instrructions. Can…

As far as I understand, even when used with 256 bits paths, the new encoding is quite superior and flexible and it is a good vectorization and compilation target.
Post reply on HN