Re:Vectorization: Introduction
by crest on Friday June 02, 2023 @02:05PM
(#36168663)
The cheeky answer would be to throw away the trash every decade, but the real answer is that there is tooling in place to pick the best possible implementation of a function at link time on modern *nix systems to target several levels of SIMD support e.g. SSE2 only, SSE4.2, AVX2, common collection of AVX512 extensions.
[ Parent
| on HN ]
What tool you are referring to? Can you please forward me to those resources?
I think crest may be referring to function multiversioning, but that only helps choose/call the implementation, not generate it.
github.com/google/highway supports compiling your single source code once into several versions, and then dispatching to the best one.
Disclosure: I am the main author.