Re:The One Billion Row Challenge in CUDA: from 17 minutes to...
by muep on Sunday April 14, 2024 @06:41AM
(#40030182)
Instead of desiring atomic maps, would it work here to give each task its own map and then merge those after the parallel processing has ended? I have have absolutely no experience of CUDA, so no idea how applicable that approach would be. However, it seemed pretty practical and effective when I tried a parallel implementation of this challenge on plain CPUs.
[ Parent
| on HN ]
Re:The One Billion Row Challenge in CUDA: from 17 minutes to...
by speps on Sunday April 14, 2024 @08:30AM
(#40030661)
Looks like TFA already uses partitioning per thread.
Re:The One Billion Row Challenge in CUDA: from 17 minutes to...
by SJC_Hacker on Sunday April 14, 2024 @09:21AM
(#40030878)
You can definitely have thread local storage
Re:The One Billion Row Challenge in CUDA: from 17 minutes to...
by tspeterkim on Sunday April 14, 2024 @10:46AM
(#40031451)
This is the possible optimization that I mention at the end of the blog - using a private map for each thread block.
The catch is that this map must fit in shared memory, which is pretty limited on all current hardware: ~100KB.
I originally thought that my map (stats array) was too big to fit into this shared memory. Now, however, I realize it can. It'll interesting to see how much speedup (or not!) this optimization can bring.