3 ms·
If by GPU bandwidth you mean GPU memory bandwidth, being able to operate at memory bandwidth is typically a huge win over CPU, not only because of the big diffe
by tmostak 8y ago
If by GPU bandwidth you mean GPU memory bandwidth, being able to operate at memory bandwidth is typically a huge win over CPU, not only because of the big difference between GPU and CPU bandwidth (900 GB/sec vs 150-200 GB/sec), but also because it is often harder to hit CPU bandwidth because a lack of FLOPs/higher difficulty vectorizing certain algorithms on CPU.
Imagine being able to keep a dynamic dictionary on the GPU to support dictionary-encoded strings or enforcing of unique ids. We do these sorts of things on the CPU now, and have made them relatively fast, but making them faster with GPU-acceleration could significantly speed up import, a major focus of ours.
We also currently build our hash maps on the fly for joins, and can cache the hash table when it makes sense, but have to rebuild from scratch when there are updates or deletes. We could likely build on this sort of data structure to be able to not start from scratch every time there is an update/delete.
Sure there are lots of other uses, just thinking off the top of my head.