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) - https://github.com/rurban/smhasher
Note that latest wyhash 1.0 is still not included into my benchmarks, it's in the wyhash branch. My benchmarking machine is still busy with fuzzing unfortunately.
As for the speed: I wouldn't claim XXH3 the world's fastest hash function at all. It's very fast for bulk digests, of large buffers. Amongst other similar hash functions. But as we know hashing mostly involves short strings, and there code size matters most. Wordwise FNV1, crc-ni and wyhash would be the fastest IMHO.
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.
AES-NI can be used as a hash, but don't assume that it makes a good job at it. Latest version of MeowHash is fine, but all other variants and prior versions have shitty collision ratios, equivalent to a ~50 bits hash :
https://github.com/Cyan4973/xxHash/wiki/Collision-ratio-comp...
MeowHash (in the benchmarck table) is actually the second fastest hash for large data and use hardware accalerated AES.
Still xxHash3 win everywhere, for any kind of data (it seems) and is portable.