I don't understand why that would matter. Aren't GPUs in-order? I don't know the low-level architecture of GPUs at all.
I don't understand why that would matter. Aren't GPUs in-order? I don't know the low-level architecture of GPUs at all.
If you want to understand low-level GPU architecture, https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-... is a great intro.
So no, they are not in-order.
Radeons do not have speculative execution but that doors not make them in-order.
One thing that they do have to deal with data dependencies is that load (and texture fetch etc.) instructions don't block. Instead, there's a separate instruction for waiting on the result of a previous load.
GPUs are (generally) in-order within each thread, but they are pipelined. The pipeline is filled with instructions that are ready to execute from across many threads. If all threads have an unmet dependency (previous instruction or memory access), the pipeline will stall.