| … | … | @@ -2,9 +2,14 @@ |
| 2 | 2 | |
| 3 | 3 | # About |
| 4 | 4 | |
| 5 | This project shows how to implement a simple hash table running on a GPU. It uses atomic operations to insert key/value | |
| 6 | pairs into a hash table on multiple GPU threads using linear probing. It uses CUDA for ease of development, but this can | |
| 7 | easily be ported to HLSL or GLSL. | |
| 5 | This project shows how to implement a simple GPU hash table. Thanks to the high bandwidth and massive parallelism of | |
| 6 | GPU's, the result is a high performance hash table capable of insertion rates in the hundreds of millions of key/value | |
| 7 | pairs a second. | |
| 8 | ||
| 9 | The code achieves an average insertion rate of 309 million key/second on my development laptop with an NVIDIA GTX 1060. | |
| 10 | ||
| 11 | This code uses atomic operations to insert key/value pairs into a lock free hash table on multiple GPU threads using linear | |
| 12 | probing. It uses CUDA for ease of development, but this can easily be ported to HLSL or GLSL. | |
| 8 | 13 | |
| 9 | 14 | The hash table inserts 32 bit keys and 32 bit values. Deleting from the hash table is not implemented in this simple |
| 10 | 15 | example, but it would be simple to implement deletion with tombstones. Similarly, lookups from the hash table are not |