Note to readers: This is a non-crypto hash algorithm. It's not meant to be cryptographically secure, but collision is rare enough for databases and similar applications, and is really fast. A real crypto hash like SipHash or BLAKE is already considered lightning fast (1-3 GB/s) in crypto applications, but XXH is faster than a RAM sequential read (30+ GB/s).
If you’re interested in diving deeper, the SMhasher benchmark suite tests a much more exhaustive list of hash functions (including wyhash) - <a href="https://github.com/rurban/smhasher" rel="nofollow">https://github.com/rurban/smhasher</a><p><a href="https://www.strchr.com/hash_functions" rel="nofollow">https://www.strchr.com/hash_functions</a>
Is also a great write up of how some of the classic hashing algorithms perform of various data sets.<p><a href="https://nullprogram.com/blog/2018/07/31/" rel="nofollow">https://nullprogram.com/blog/2018/07/31/</a>
is an interesting approach on generating hashing functions automatically.
So if you are confused like me how someone came up with an algorithm faster than anything else currently available: This is from the mastermind behind the lz4 and zstd compression.
I wonder how it compares to AES-NI. Technically that's not a hash, but it can be abused to be, and due to the hardware support the bandwidth is pretty good.