News for hackers. Stuff that matters.
Re:The One Billion Row Challenge in CUDA: from 17 minutes to... by tspeterkim on Monday April 15, 2024 @06:22AM (#40038633)
I tried this out today. While it works (no longer a pre-split step required), it makes the CUDA kernel run ridiculously slow. I believe it's because of the while loop:

  while (i < end_byte) {
Comparing it to my original solution, 50X divergent branches are introduced! (ncu profiling)

The only difference between the two is that the for loop could deterministically iterate, yet this while loop iterates for an unknown amount (at kernel launch time).

I admit, I don't perfectly understand the reason. But this is the most likely culprit.

There are no comments on this comment yet.