Re:Old box, dumb code, few thousand connections, no big deal
by sagarm on Friday May 08, 2020 @02:51PM
(#23118100)
A realistic speedup to expect from vectorization is probably closer to 10x. Other overheads start to dominate once you've optimized your inner loops.
It's also not reasonable to expect to vectorize everything; for example a web server is unlikely to benefit from vectorization.
Re:Old box, dumb code, few thousand connections, no big deal
by kragen on Friday May 08, 2020 @03:43PM
(#23118660)
Just to clarify, I was only estimating a speedup of 4× from vectorization, while the other 8× comes from multithreading.
Fifteen years ago we thought regular expression matching and compilers were unlikely to benefit from vectorization, but now we have Hyperscan and Co-dfns, so they did. So I think it's likely that we will figure out ways to do a wider variety of computations in vectorized ways, now that the rewards are so great.
It's pretty variable: some things we haven't figured out how to speed up with SIMD, sometimes we have a GPU, sometimes we can get 8 or 16 SIMD lanes out of SSE3 or AVX128 or 32 of them out of AVX256, sometimes you only have four cores, sometimes make -j is enough parallelism to win you back the 8× factor from the cores (though not SIMD and GPGPU). But I think 97% is a good ballpark estimate in general.