| … | … | @@ -8,6 +8,9 @@ GPU's, the result is a high performance hash table capable of hundreds of millio |
| 8 | 8 | The code achieves an average insertion rate of 326 million key/second on my development laptop with an NVIDIA GTX 1060, |
| 9 | 9 | measured by inserting 64 million elements. |
| 10 | 10 | |
| 11 | [Read my blog post about the code here](http://nosferalatu.com/SimpleGPUHashTable.html) for more information about the |
| 12 | implementation. |
| 13 | |
| 11 | 14 | The code implements a lock free hash table using linear probing. Concurrent inserts, deletes, and lookups are supported by |
| 12 | 15 | this hash table. The hash table works on 32 bit keys and 32 bit values (although 0xffffffff is reserved for both keys |
| 13 | 16 | and values). The load factor of the table is set to 50% in the code, and the table size must be a power of two. |
| … | … | @@ -22,11 +25,6 @@ contents of a table into another, larger table. |
| 22 | 25 | The code was kept simple for readability. There are many optimizations that can be done, but they muddy the waters. I |
| 23 | 26 | wanted to illustrate the basic design of the lock free hash table and how it can be implemented on a GPU. |
| 24 | 27 | |
| 25 | | For more information on the lock free hash table design, read: |
| 26 | | * Preshing on Programming's [The World's Simplest Lock Free Hash |
| 27 | | Table](https://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/) |
| 28 | | * Cliff Click's slides on [A Lock-Free Wait-Free Hash Table](https://web.stanford.edu/class/ee380/Abstracts/070221_LockFreeHash.pdf) |
| 29 | | |
| 30 | 28 | # How To Use |
| 31 | 29 | |
| 32 | 30 | If you build and run the executable, it enters an infinite loop of inserting and deleting random numbers into the |