为什么GPU没有分支预测？
CPU 是单线程操作，一旦cache miss，就会产生访存操作，从而带来极大的性能损失，因此CPU做了大量的分支预测，尽可能保证cachehit，保证性能。

GPU不做分支预测，一方面确实是在图形学领域，分支指令确实不是很多。另一个原因是一般的shader程序编译后的指令都不会很长，一般片上cache就基本能将一段shader程序（包括不同分支的指令）都装载到片上cache，那么分支预测也就没有存在的意义了。还有个区别是，GPU分支大多情况下是都要执行的。

举个例子，一个SIMD32指令，遇到一个分支，可能会出现一半的threads走if分支，而另一半的threads走else分支，所以就需要这些指令都要在cache中。