Home

Awesome

Update (Mar 22, 2021)

Update (Dec 28, 2020)

Update (May 12, 2019)

Update (Apr 1, 2019)

Update (Oct 31, 2018)

MUM Hash

MUM implementation details

MUM benchmarking vs Spooky, City64, xxHash64, MetroHash64, MeowHash, and SipHash24

Intel i7-9700K

SpookyCityxxHashSipHash24MetroMeowHashMUM-V1MUM-V2MUM-V3
5-byte6.62s8.78s6.80s10.07s5.76s11.25s6.57s5.56s4.85s
8-byte6.30s8.81s6.54s12.89s4.18s11.25s4.74s3.69s2.88s
16-byte12.64s8.20s8.11s16.13s5.71s9.42s5.85s4.75s3.95s
32-byte13.20s9.60s11.60s22.40s11.72s9.42s6.83s5.52s4.71s
64-byte19.40s10.60s12.86s36.70s12.53s9.42s9.35s8.79s6.54s
128-byte32.58s14.25s15.49s63.82s14.63s10.46s13.64s13.01s11.53s
Bulk9.74s9.17s9.59s48.63s8.89s4.65s10.33s10.38s7.93s

Apple M1 silicon

SpookyCity64xxHash64SipHash24Metro64MUM-V1MUM-V2MUM-V3
5 bytes10.10s12.97s10.51s22.22s9.93s11.19s9.19s7.95s
8 bytes9.10s13.32s9.64s30.95s6.33s8.43s6.43s5.23s
16 bytes19.00s12.83s14.84s36.67s8.45s11.07s9.04s7.80s
32 bytes19.04s14.94s17.56s49.97s29.71s12.05s10.05s8.83s
64 bytes29.23s15.58s23.22s73.63s33.45s13.65s11.87s10.49s
128 bytes49.57s23.38s28.88s123.77s40.33s17.60s15.60s14.46s
16MB13.58s11.36s11.90s98.20s13.83s10.85s10.89s6.52s

Power9 (3.8GHz)

SpookyCity64xxHash64SipHash24Metro64MUM-V1MUM-V2MUM-V3
5 bytes22.14s23.87s20.54s45.06s18.01s18.44s18.29s17.29s
8 bytes17.62s23.68s19.92s54.13s9.82s9.18s7.55s6.00s
16 bytes34.02s18.60s23.62s61.19s15.75s17.32s17.47s16.46s
32 bytes32.16s21.66s34.73s75.72s27.82s18.72s18.87s17.93s
64 bytes53.53s23.40s37.97s104.23s29.88s21.34s20.42s20.29s
128 bytes87.46s33.17s44.60s193.19s38.73s32.96s30.90s27.47s
16MB17.12s13.64s14.56s116.85s12.22s11.59s11.56s10.69s

AARCH64 (APM X-Gene)

SpookyCity64xxHash64SipHash24Metro64MUM-V1MUM-V2MUM-V3
5 bytes18.13s25.60s22.40s27.73s18.67s20.79s16.00s17.07s
8 bytes17.60s25.60s21.33s35.73s13.33s14.39s11.20s9.06s
16 bytes30.93s25.07s26.13s45.33s17.07s21.33s15.99s19.73s
32 bytes30.94s29.33s36.27s62.94s36.27s28.26s24.00s28.27s
64 bytes44.80s30.40s40.54s101.87s38.40s41.60s37.34s41.07s
128 bytes73.07s45.34s49.07s195.75s43.74s69.34s64.54s67.74s
16MB40.01s45.82s53.24s188.42s53.25s48.48s48.48s33.90s

Vectorization

Using cryptographic vs. non-cryptographic hash function

How to use MUM

sh bench

Crypto-hash function MUM512

MUM512SHA2SHA3Blake2B
10 bytes (20 M texts)0.57s0.53s0.87s0.68s
100 bytes (20 M texts)0.77s0.51s1.68s0.68s
1000 bytes (20 M texts)2.75s3.79s11.58s2.85s
10000 bytes (5 M texts)5.60s9.21s28.37s6.23s

Pseudo-random generators

M prns/sec
BBS0.078
ChaCha199
SipHash24413
MUM51283
MUM1317
XOSHIRO128**1130
XOSHIRO256**1337
XOSHIRO512**1044
GLIBC RAND193
XOROSHIRO128+1342
XOSHIRO256+1339
XOSHIRO512+1253
M prns/sec
BBS-
ChaCha191.33
Sip24402.48
MUM512152.27
MUM1414.57
XOROSHIRO128**482.91
XOSHIRO256**732.24
XOSHIRO512**689.60
RAND180.02
XOROSHIRO128+621.52
XOSHIRO256+954.42
XOSHIRO512+890.81