2015
DOI: 10.1007/s13389-015-0110-5
|View full text |Cite
|
Sign up to set email alerts
|

Faster 64-bit universal hashing using carry-less multiplications

Abstract: Intel and AMD support the Carry-less Multiplication (CLMUL) instruction set in their x64 processors. We use CLMUL to implement an almost universal 64-bit hash family (CLHASH). We compare this new family with what might be the fastest almost universal family on x64 processors (VHASH). We find that CLHASH is at least 60 % faster. We also compare CLHASH with a popular hash function designed for speed (Google's CityHash). We find that CLHASH is 40 % faster than CityHash on inputs larger than 64 bytes and just as f… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
15
0

Year Published

2016
2016
2024
2024

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 22 publications
(15 citation statements)
references
References 23 publications
0
15
0
Order By: Relevance
“…Further, we have shown that an implementation of these non-cryptographic hash functions offered competitive speed (as fast as MurmurHash), and were substantially faster than the implementations found in C++ standard libraries. Our approach is similar to previous work on fast universal hash families (e.g., MMH [32], CLHASH [41], UMAC [27], VHASH [30], and Poly1305 [15]), except that we get good regularity in addition to the high speed and universality. To promote the use of our hash functions among practitioners and researchers, our implementation is freely available as open source software.…”
Section: Resultsmentioning
confidence: 79%
“…Further, we have shown that an implementation of these non-cryptographic hash functions offered competitive speed (as fast as MurmurHash), and were substantially faster than the implementations found in C++ standard libraries. Our approach is similar to previous work on fast universal hash families (e.g., MMH [32], CLHASH [41], UMAC [27], VHASH [30], and Poly1305 [15]), except that we get good regularity in addition to the high speed and universality. To promote the use of our hash functions among practitioners and researchers, our implementation is freely available as open source software.…”
Section: Resultsmentioning
confidence: 79%
“…We can compute such a prefix sum in C++ with a loop that repeatedly apply the bitwise XOR on a leftshifted word:for (i=0;i<64;i++){mask = mask xor (mask << 1)}. This prefix sum can be more efficiently implemented as one instruction by using the carry-less multiplication [16] (implemented with the pclmulqdq instruction) of our unescaped quote bit vector by another 64-bit word made entirely of ones. The carry-less multiplication works like the regular integer multiplication, but, as the name suggests, without a carry because it relies on the XOR operation instead of the addition.…”
Section: Identification Of the Quoted Substringsmentioning
confidence: 99%
“…The overall number of cells is 131072 also in this case. The number of bits for the fingerprint a is set to 8,12 and 16 so that the standard cuckoo filter with d = 4, c = 1 gets a false positive rate of approximately 1.5%, 0.1%, and 0.006% at 95% occupancy. The same number of bits per cell is used for the different ACF configurations.…”
Section: Simulations With Generated Queriesmentioning
confidence: 99%