Group counts


Larry Gritz <l...@...>
 

Incidentally, here are the counts of how many points were executed for each shader group in our tweedle test image, at 1/4 res but full sampling.

117 groups in the scene never executed (and thus never optimized or generated LLVM IR)

39 executed -- about 25% of which less than 10,000 times, about 50% more than 100,000 times (with, actually, most of those executing over a million times, 3 of them over 10M times). The raw data are below.

All told, there were 124M total groups*points executed. The 50% of the groups that executed fewer than 100k times each accounted for a total of 589k executions.

That means that 50% of our optimization time was for shader groups that accounted for less than 0.5% of all the executions. So if all groups are equally expensive to optimize and equally expensive to execute (not accurate, but let's just do some ballparking), we could eliminate 50% of the optimization overhead and barely be able to measure the difference in shader execution speed. Even if I'm off by a factor of 10, it's still pretty compelling to try this out.



ngroups npoints
----------------
117 0 points
1 981 points
1 984 points
1 2496 points
1 3158 points
1 3456 points
1 3840 points
1 6054 points
1 6997 points
1 8132 points
1 11294 points
1 11520 points
1 13587 points
1 18720 points
1 29236 points
1 45837 points
1 53616 points
1 55728 points
2 76896 points
1 78336 points
1 81562 points
1 125128 points
1 386219 points
1 517824 points
1 576000 points
1 920064 points
1 1445765 points
1 1836428 points
1 2223428 points
1 2236992 points
1 4099688 points
1 5890521 points
1 6283710 points
1 6284152 points
1 7843539 points
1 8570063 points
1 17908681 points
1 18041087 points
1 38361225 points
--
Larry Gritz
l...@...