Skip to content

Commit

Permalink
results of fwojcik's fixes
Browse files Browse the repository at this point in the history
add a link to SMHasher3 (rurban#228)
change several hashes from POOR to GOOD
  • Loading branch information
rurban committed Aug 19, 2022
1 parent a150b18 commit 9a5e665
Show file tree
Hide file tree
Showing 117 changed files with 46,054 additions and 120,639 deletions.
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,10 @@ SMhasher
| [pair_multiply_shift](doc/pair_multiply_shift)| 3716.95 | 40.22 | 186.34 (3) | 609 | fails most tests |
| -------------------------- | | | | | |
| [crc32](doc/crc32.txt) | 392.10 | 131.62 | 204.58 (4) | 422 | insecure, 8590x collisions, distrib, PerlinNoise |
| [md5_32a](doc/md5_32a.txt) | 353.64 | 629.85 | 799.56 (9) |4419 | 8590x collisions, distrib |
| [sha1_32a](doc/sha1_32a.txt) | 353.03 | 1385.80 |1759.94 (5) |5126 | Cyclic low32, 36.6% distrib |
| [md5_32](doc/md5_32.txt) | 353.64 | 629.85 | 799.56 (9) |4419 | |
| [md5_64](doc/md5_64.txt) | 353.64 | 629.85 | 799.56 (9) |4419 | |
| [md5-128](doc/md5-128.txt) | 353.76 | 638.29 | 803.39 (9) |4419 | |
| [sha1_32a](doc/sha1_32a.txt) | 353.03 | 1385.80 |1759.94 (5) |5126 | Sanity, Cyclic low32, 36.6% distrib |
| [sha1-160](doc/sha1-160.txt) | 364.95 | 1470.55 |1794.16 (13)|5126 | Comb/Cyclic low32 |
| [sha2-224](doc/sha2-224.txt) | 147.13 | 1354.81 |1589.92 (12)| | Comb low32 |
| [sha2-224_64](doc/sha2-224_64.txt) | 147.60 | 1360.10 |1620.93 (13)| | Cyclic low32 |
Expand Down Expand Up @@ -218,7 +219,7 @@ Summary
-------

I added some SSE assisted hashes and fast intel/arm CRC32-C, AES and SHA HW variants.
See also the old [https://github.com/aappleby/smhasher/wiki](https://github.com/aappleby/smhasher/wiki) and the improved, but unmaintained fork [https://github.com/demerphq/smhasher](https://github.com/demerphq/smhasher).
See also the old [https://github.com/aappleby/smhasher/wiki](https://github.com/aappleby/smhasher/wiki), the improved, but unmaintained fork [https://github.com/demerphq/smhasher](https://github.com/demerphq/smhasher), and the new improved version SMHasher3 [https://gitlab.com/fwojcik/smhasher3](https://gitlab.com/fwojcik/smhasher3).

So the fastest hash functions on x86_64 without quality problems are:

Expand Down
2,921 changes: 361 additions & 2,560 deletions doc/BEBB4185.txt

Large diffs are not rendered by default.

428 changes: 200 additions & 228 deletions doc/BadHash.txt

Large diffs are not rendered by default.

1,324 changes: 355 additions & 969 deletions doc/City128.txt

Large diffs are not rendered by default.

938 changes: 268 additions & 670 deletions doc/City32.txt

Large diffs are not rendered by default.

1,282 changes: 387 additions & 895 deletions doc/City64.txt

Large diffs are not rendered by default.

936 changes: 266 additions & 670 deletions doc/City64low.txt

Large diffs are not rendered by default.

1,301 changes: 396 additions & 905 deletions doc/City64noSeed.txt

Large diffs are not rendered by default.

1,323 changes: 354 additions & 969 deletions doc/CityCrc128.txt

Large diffs are not rendered by default.

830 changes: 267 additions & 563 deletions doc/Crap8.txt

Large diffs are not rendered by default.

522 changes: 204 additions & 318 deletions doc/FNV1A_Pippip_Yurii.txt

Large diffs are not rendered by default.

522 changes: 204 additions & 318 deletions doc/FNV1A_Totenschiff.txt

Large diffs are not rendered by default.

518 changes: 201 additions & 317 deletions doc/FNV1a.txt

Large diffs are not rendered by default.

507 changes: 211 additions & 296 deletions doc/FNV1a_YT.txt

Large diffs are not rendered by default.

1,768 changes: 533 additions & 1,235 deletions doc/FNV2.txt

Large diffs are not rendered by default.

14,592 changes: 465 additions & 14,127 deletions doc/FNV64.txt

Large diffs are not rendered by default.

1,314 changes: 349 additions & 965 deletions doc/FarmHash128.txt

Large diffs are not rendered by default.

942 changes: 268 additions & 674 deletions doc/FarmHash32.txt

Large diffs are not rendered by default.

1,271 changes: 382 additions & 889 deletions doc/FarmHash64.txt

Large diffs are not rendered by default.

937 changes: 268 additions & 669 deletions doc/GoodOAAT.txt

Large diffs are not rendered by default.

939 changes: 269 additions & 670 deletions doc/HalfSipHash.txt

Large diffs are not rendered by default.

781 changes: 261 additions & 520 deletions doc/JenkinsOOAT.txt

Large diffs are not rendered by default.

722 changes: 250 additions & 472 deletions doc/JenkinsOOAT_perl.txt

Large diffs are not rendered by default.

2,870 changes: 388 additions & 2,482 deletions doc/MUM.txt

Large diffs are not rendered by default.

1,012 changes: 333 additions & 679 deletions doc/MUMlow.txt

Large diffs are not rendered by default.

1,002 changes: 308 additions & 694 deletions doc/MeowHash.txt

Large diffs are not rendered by default.

779 changes: 190 additions & 589 deletions doc/MeowHash32low.txt

Large diffs are not rendered by default.

1,101 changes: 346 additions & 755 deletions doc/MeowHash64low.txt

Large diffs are not rendered by default.

607 changes: 199 additions & 408 deletions doc/MicroOAAT.txt

Large diffs are not rendered by default.

598 changes: 167 additions & 431 deletions doc/Murmur1.txt

Large diffs are not rendered by default.

828 changes: 266 additions & 562 deletions doc/Murmur2.txt

Large diffs are not rendered by default.

868 changes: 268 additions & 600 deletions doc/Murmur2A.txt

Large diffs are not rendered by default.

1,266 changes: 378 additions & 888 deletions doc/Murmur2B.txt

Large diffs are not rendered by default.

1,316 changes: 402 additions & 914 deletions doc/Murmur2C.txt

Large diffs are not rendered by default.

939 changes: 267 additions & 672 deletions doc/Murmur3A.txt

Large diffs are not rendered by default.

1,270 changes: 328 additions & 942 deletions doc/Murmur3C.txt

Large diffs are not rendered by default.

1,318 changes: 351 additions & 967 deletions doc/Murmur3F.txt

Large diffs are not rendered by default.

771 changes: 259 additions & 512 deletions doc/MurmurOAAT.txt

Large diffs are not rendered by default.

1,904 changes: 606 additions & 1,298 deletions doc/NOP_OAAT_read64.txt

Large diffs are not rendered by default.

600 changes: 200 additions & 400 deletions doc/PMPML_32.txt

Large diffs are not rendered by default.

1,066 changes: 333 additions & 733 deletions doc/PMPML_64.txt

Large diffs are not rendered by default.

939 changes: 267 additions & 672 deletions doc/PMurHash32.txt

Large diffs are not rendered by default.

1,257 changes: 375 additions & 882 deletions doc/SipHash.txt

Large diffs are not rendered by default.

1,243 changes: 368 additions & 875 deletions doc/SipHash13.txt

Large diffs are not rendered by default.

1,314 changes: 349 additions & 965 deletions doc/Spooky128.txt

Large diffs are not rendered by default.

951 changes: 277 additions & 674 deletions doc/Spooky32.txt

Large diffs are not rendered by default.

1,294 changes: 393 additions & 901 deletions doc/Spooky64.txt

Large diffs are not rendered by default.

1,003 changes: 313 additions & 690 deletions doc/SpookyV2_128.txt

Large diffs are not rendered by default.

784 changes: 193 additions & 591 deletions doc/SpookyV2_32.txt

Large diffs are not rendered by default.

1,083 changes: 343 additions & 740 deletions doc/SpookyV2_64.txt

Large diffs are not rendered by default.

1,748 changes: 622 additions & 1,126 deletions doc/TSip.txt

Large diffs are not rendered by default.

960 changes: 284 additions & 676 deletions doc/VHASH_32.txt

Large diffs are not rendered by default.

1,390 changes: 493 additions & 897 deletions doc/VHASH_64.txt

Large diffs are not rendered by default.

1,129 changes: 363 additions & 766 deletions doc/aesnihash.txt

Large diffs are not rendered by default.

1,025 changes: 325 additions & 700 deletions doc/asconhashv12.txt

Large diffs are not rendered by default.

1,107 changes: 354 additions & 753 deletions doc/asconhashv12_64.txt

Large diffs are not rendered by default.

2,454 changes: 396 additions & 2,058 deletions doc/beamsplitter.txt

Large diffs are not rendered by default.

422 changes: 200 additions & 222 deletions doc/bernstein.txt

Large diffs are not rendered by default.

1,843 changes: 585 additions & 1,258 deletions doc/blake2b-160.txt

Large diffs are not rendered by default.

1,976 changes: 587 additions & 1,389 deletions doc/blake2b-224.txt

Large diffs are not rendered by default.

983 changes: 302 additions & 681 deletions doc/blake2b-256.txt

Large diffs are not rendered by default.

1,710 changes: 608 additions & 1,102 deletions doc/blake2b-256_64.txt

Large diffs are not rendered by default.

1,783 changes: 587 additions & 1,196 deletions doc/blake2s-128.txt

Large diffs are not rendered by default.

1,473 changes: 547 additions & 926 deletions doc/blake2s-160.txt

Large diffs are not rendered by default.

1,509 changes: 582 additions & 927 deletions doc/blake2s-224.txt

Large diffs are not rendered by default.

1,520 changes: 589 additions & 931 deletions doc/blake2s-256.txt

Large diffs are not rendered by default.

1,734 changes: 607 additions & 1,127 deletions doc/blake2s-256_64.txt

Large diffs are not rendered by default.

1,028 changes: 321 additions & 707 deletions doc/blake3_c.txt

Large diffs are not rendered by default.

1,111 changes: 354 additions & 757 deletions doc/chaskey.txt

Large diffs are not rendered by default.

1,817 changes: 658 additions & 1,159 deletions doc/clhash.txt

Large diffs are not rendered by default.

1,256 changes: 374 additions & 882 deletions doc/cmetrohash64_1.txt

Large diffs are not rendered by default.

1,256 changes: 374 additions & 882 deletions doc/cmetrohash64_1o.txt

Large diffs are not rendered by default.

1,268 changes: 380 additions & 888 deletions doc/cmetrohash64_2.txt

Large diffs are not rendered by default.

594 changes: 198 additions & 396 deletions doc/crc32.txt

Large diffs are not rendered by default.

602 changes: 203 additions & 399 deletions doc/crc32_hw.txt

Large diffs are not rendered by default.

602 changes: 203 additions & 399 deletions doc/crc32_hw1.txt

Large diffs are not rendered by default.

378 changes: 148 additions & 230 deletions doc/crc32_pclmul.txt

Large diffs are not rendered by default.

1,807 changes: 550 additions & 1,257 deletions doc/crc64_hw.txt

Large diffs are not rendered by default.

880 changes: 234 additions & 646 deletions doc/donothing128.txt

Large diffs are not rendered by default.

443 changes: 215 additions & 228 deletions doc/donothing32.txt

Large diffs are not rendered by default.

2,128 changes: 655 additions & 1,473 deletions doc/donothing64.txt

Large diffs are not rendered by default.

1,254 changes: 373 additions & 881 deletions doc/falkhash.txt

Large diffs are not rendered by default.

1,314 changes: 349 additions & 965 deletions doc/farmhash128_c.txt

Large diffs are not rendered by default.

946 changes: 270 additions & 676 deletions doc/farmhash32_c.txt

Large diffs are not rendered by default.

1,270 changes: 381 additions & 889 deletions doc/farmhash64_c.txt

Large diffs are not rendered by default.

1,049 changes: 333 additions & 716 deletions doc/farsh128.txt

Large diffs are not rendered by default.

1,049 changes: 336 additions & 713 deletions doc/farsh256.txt

Large diffs are not rendered by default.

828 changes: 221 additions & 607 deletions doc/farsh32.txt

Large diffs are not rendered by default.

1,511 changes: 573 additions & 938 deletions doc/farsh64.txt

Large diffs are not rendered by default.

937 changes: 268 additions & 669 deletions doc/fasthash32.txt

Large diffs are not rendered by default.

1,262 changes: 378 additions & 884 deletions doc/fasthash64.txt

Large diffs are not rendered by default.

17,089 changes: 590 additions & 16,499 deletions doc/fibonacci.txt

Large diffs are not rendered by default.

1,816 changes: 555 additions & 1,261 deletions doc/fletcher2.txt

Large diffs are not rendered by default.

1,824 changes: 559 additions & 1,265 deletions doc/fletcher4.txt

Large diffs are not rendered by default.

1,660 changes: 630 additions & 1,030 deletions doc/floppsyhash.txt

Large diffs are not rendered by default.

433 changes: 193 additions & 240 deletions doc/gcc.txt

Large diffs are not rendered by default.

1,586 changes: 588 additions & 998 deletions doc/halftime_hash128.txt

Large diffs are not rendered by default.

1,592 changes: 591 additions & 1,001 deletions doc/halftime_hash256.txt

Large diffs are not rendered by default.

1,579 changes: 591 additions & 988 deletions doc/halftime_hash512.txt

Large diffs are not rendered by default.

1,587 changes: 592 additions & 995 deletions doc/halftime_hash64.txt

Large diffs are not rendered by default.

1,992 changes: 560 additions & 1,432 deletions doc/hasshe2.txt

Large diffs are not rendered by default.

492 changes: 198 additions & 294 deletions doc/jodyhash32.txt

Large diffs are not rendered by default.

2,064 changes: 540 additions & 1,524 deletions doc/jodyhash64.txt

Large diffs are not rendered by default.

439 changes: 235 additions & 204 deletions doc/k-hash32.txt

Large diffs are not rendered by default.

1,371 changes: 521 additions & 850 deletions doc/k-hash64.txt

Large diffs are not rendered by default.

1,061 changes: 333 additions & 728 deletions doc/k-hashv32.txt

Large diffs are not rendered by default.

1,582 changes: 589 additions & 993 deletions doc/k-hashv64.txt

Large diffs are not rendered by default.

1,099 changes: 351 additions & 748 deletions doc/komihash.txt

Large diffs are not rendered by default.

427 changes: 192 additions & 235 deletions doc/libiberty.txt

Large diffs are not rendered by default.

931 changes: 267 additions & 664 deletions doc/lookup3.txt

Large diffs are not rendered by default.

1,313 changes: 351 additions & 962 deletions doc/md5-128.txt

Large diffs are not rendered by default.

738 changes: 738 additions & 0 deletions doc/md5_32.txt

Large diffs are not rendered by default.

1,151 changes: 0 additions & 1,151 deletions doc/md5_32a.txt

This file was deleted.

26 changes: 17 additions & 9 deletions doc/ryzen3.html
Original file line number Diff line number Diff line change
Expand Up @@ -119,21 +119,21 @@ <h1 id="smhasher">SMhasher</h1>
<td align="right">422</td>
<td align="left">insecure, 8590x collisions, distrib</td>
</tr>
<tr class="poor">
<td align="left"><a href="md5_32a.txt">md5_32a</a></td>
<tr class="good">
<td align="left"><a href="md5_32.txt">md5_32</a></td>
<td align="right">438.42</td>
<td align="right">500.67</td>
<td align="right">1003.44 (27)</td>
<td align="right">4419</td>
<td align="left">8590x collisions, distrib</td>
<td align="left"></td>
</tr>
<tr class="good">
<td align="left"><a href="sha1_32a.txt">sha1_32a</a></td>
<td align="right">717.81</td>
<td align="right">602.63</td>
<td align="right">1136.55 (15)</td>
<td align="right">5126</td>
<td align="left">collisions, 36.6% distrib</td>
<td align="left"><a href="md5_64.txt">md5_64</a></td>
<td align="right">438.42</td>
<td align="right">500.67</td>
<td align="right">1003.44 (27)</td>
<td align="right">4419</td>
<td align="left"></td>
</tr>
<tr class="good">
<td align="left"><a href="md5-128.txt">md5-128</a></td>
Expand All @@ -143,6 +143,14 @@ <h1 id="smhasher">SMhasher</h1>
<td align="right">4419</td>
<td align="left"></td>
</tr>
<tr class="good">
<td align="left"><a href="sha1_32a.txt">sha1_32a</a></td>
<td align="right">717.81</td>
<td align="right">602.63</td>
<td align="right">1136.55 (15)</td>
<td align="right">5126</td>
<td align="left">Sanity, collisions, 36.6% distrib</td>
</tr>
<tr class="poor">
<td align="left"><a href="sha1-160.txt">sha1-160</a></td>
<td align="right">718.61</td>
Expand Down
26 changes: 17 additions & 9 deletions doc/table.html
Original file line number Diff line number Diff line change
Expand Up @@ -119,21 +119,21 @@ <h1 id="smhasher">SMhasher</h1>
<td align="right">422</td>
<td align="left">insecure, 8590x collisions, distrib</td>
</tr>
<tr class="poor">
<td align="left"><a href="md5_32a.txt">md5_32a</a></td>
<tr class="good">
<td align="left"><a href="md5_32.txt">md5_32</a></td>
<td align="right">353.64</td>
<td align="right">629.85</td>
<td align="right">799.56 (9)</td>
<td align="right">4419</td>
<td align="left">8590x collisions, distrib</td>
<td align="left"></td>
</tr>
<tr class="good">
<td align="left"><a href="sha1_32a.txt">sha1_32a</a></td>
<td align="right">361.42</td>
<td align="right">953.56</td>
<td align="right">1120.35 (6)</td>
<td align="right">5126</td>
<td align="left">collisions, 36.6% distrib</td>
<td align="left"><a href="md5_64.txt">md5_64</a></td>
<td align="right">353.64</td>
<td align="right">629.85</td>
<td align="right">799.56 (9)</td>
<td align="right">4419</td>
<td align="left"></td>
</tr>
<tr class="good">
<td align="left"><a href="md5-128.txt">md5-128</a></td>
Expand All @@ -143,6 +143,14 @@ <h1 id="smhasher">SMhasher</h1>
<td align="right">4419</td>
<td align="left"></td>
</tr>
<tr class="good">
<td align="left"><a href="sha1_32a.txt">sha1_32a</a></td>
<td align="right">361.42</td>
<td align="right">953.56</td>
<td align="right">1120.35 (6)</td>
<td align="right">5126</td>
<td align="left">Sanity, collisions, 36.6% distrib</td>
</tr>
<tr class="poor">
<td align="left"><a href="sha1-160.txt">sha1-160</a></td>
<td align="right">364.35</td>
Expand Down
Loading

0 comments on commit 9a5e665

Please sign in to comment.