Hacker News new | ask | show | jobs
by kbwt 2830 days ago
> The switching isn't free.

It absolutely is, on current GPUs. Think of it like a larger-scale version of SMT (Intel's hyperthreading). GPUs are able to do this because they execute instructions in-order and do not need to track thousands of instructions per thread.

2 comments

It's more complex than that. Switching warps thrashes your caches. There is definitely a cost associated with it.
Well, yeah. If you are memory bandwidth-constrained it's a bad idea to go off-chip.

But for ray-tracing, what does it really matter? We are already assuming that you will wait a full memory fetch cycle to get the next node's child AABBs and child indices. The warps will do their intersection test on the data they just read and fire off the next read. Each thread's hot context should fit in under a cache line, since it's basically just a single ray to keep track of.

IIRC it costs you a cycle to switch warps on Maxwell, but I'm not completely sure.