4 ms·
Intel's icc (and even gcc) got really good at vectorization these last few years. It's rare when I see some code that the vectorization-report says is not worth
by yvdriess 11y ago
Intel's icc (and even gcc) got really good at vectorization these last few years. It's rare when I see some code that the vectorization-report says is not worth vectorizing that actually is. Last week, I got better results by leaving out the intrinsics. The code-reorganization you do to put in vec intrinsics will definitely make the compiler's vectorization-optimization trigger. Just keep an eye on the compiler's vec reports :)
- slizard 11y agoThat may be true for simple operations on aligned buffers, and nice regular computation in general. Anything slightly complex will throw off the compiler and result in suboptimal performance in the best case, none or stupid vectorization the worst (and quite common) case. How do I know? We have some experience with vectorization in the team I work in (www.gromacs.org), our code has support for at about 10-12 SIMD instruction sets ;)
- vardump 11y agoICC and GCC produce pretty nice scalar code, but their vectorization abilities are far from perfect. Compiler vectorization tends to also be less stable, slightest changes can make the compiler to drop the optimizations in a later build. It might not ideal to use intrinsics, but that's how you get predictable performance.