Recent spatial hashing schemes hash millions of keys in parallel, compacting sparse spatial data in small hash tables while still allowing for fast access from the GPU. Unfortunately, available schemes suffer from two drawbacks: Multiple runs of the construction process are often required before success, and the random nature of the hash functions decreases access performance.
We introduce a new parallel hashing scheme which reaches high load factor with a very low failure rate. In addition our scheme has the unique advantage to exploit coherence in the data and the access patterns for faster performance. Compared to existing approaches, it exhibits much greater locality of memory accesses and consistent execution paths within groups of threads. This is especially well suited to Computer Graphics applications, where spatial coherence is common. In absence of coherence our scheme performs similarly to previous methods, but does not suffer from construction failures.
Our scheme is based on the Robin Hood scheme modified to quickly abort queries of keys that are not in the table, and to preserve coherence. We demonstrate our scheme on a variety of data sets. We analyze construction and access performance, as well as cache and threads behavior.
[1]
Pat Morin,et al.
On Worst-Case Robin Hood Hashing
,
2004,
SIAM J. Comput..
[2]
Sylvain Lefebvre,et al.
Perfect spatial hashing
,
2006,
ACM Trans. Graph..
[3]
Ori Sasson,et al.
Non-Expansive Hashing
,
1996,
STOC '96.
[4]
John D. Owens,et al.
Real-time parallel hashing on the GPU
,
2009,
ACM Trans. Graph..
[5]
John D. Owens,et al.
Building an Efficient Hash Table on the GPU
,
2012
.
[6]
Rasmus Pagh,et al.
Cuckoo Hashing
,
2001,
Encyclopedia of Algorithms.
[7]
W. W. Peterson,et al.
Addressing for Random-Access Storage
,
1957,
IBM J. Res. Dev..
[8]
John D. Owens,et al.
Real-time parallel hashing on the GPU
,
2009,
SIGGRAPH 2009.
[9]
Nivio Ziviani,et al.
External perfect hashing for very large key sets
,
2007,
CIKM '07.
[10]
J. Ian Munro,et al.
Robin hood hashing
,
1985,
26th Annual Symposium on Foundations of Computer Science (sfcs 1985).