3 ms·
But GPU cores are already king at latency hiding. They can run hundreds of threads doing pointer chasing, switching between them round-robin as the memory reads
by kbwt 8y ago
But GPU cores are already king at latency hiding. They can run hundreds of threads doing pointer chasing, switching between them round-robin as the memory reads complete.
- exDM69 8y agoThe switching isn't free. Waking up a thread to do just a few computation cycles (a few ray-aabb intersections) and then going back to sleep while waiting for the next node to be fetched from the memory is super inefficient. If there was significant computation needed per node, this wouldn't be an issue.
- kbwt 8y 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.
- david-gpu 8y agoIt's more complex than that. Switching warps thrashes your caches. There is definitely a cost associated with it.
- kbwt 8y agoWell, 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.
- namibj 8y agoIIRC it costs you a cycle to switch warps on Maxwell, but I'm not completely sure.