一些人在网上说GPU擅长“浮点运算”,这其实是概念上的错误。
GPU擅长的是计算密集型任务,至于这个计算密集型任务是以整数为主还是浮点为主并不那么确定。例如对于区块链计算,主要就是整数运算(泛指整数、布尔、位运算等,例如快速hash运算)。
GPU的架构和CPU不太一样,主要集成了大量的ALU(算术逻辑单元),但通常并没有极其复杂的指令解码器、分支预测等等。CPU除了有ALU外,还需要执行大量的分支条件跳转指令,这些指令不同于普通的计算指令,大部分普通计算指令之间是独立的,只不过是计算结果上的作用次序差别,而分支跳转指令则不同会影响程序运行的局部状态甚至系统的一些状态,现代CPU为了提高效率,引入了许多技术就是为了提高在大量分支存在的时候尽可能减少对运算效率的影响。