GPU 是替代不了 CPU 的,同样,CPU 也替代不了 GPU。如果形象点理解,GPU 就像一群蚂蚁,这些蚂蚁都做着同样的事,而 CPU 就像一只猴子,这只猴子做着各种不同的事。从根本上说 CPU 和 GPU 它们的目的不同,且有不同侧重点,也有着不同的性能特性,在某些工作中 CPU 执行得更快,另一工作中或许 GPU 能更好。

 

 

当你需要对大量数据做同样的事情时,GPU 更合适,当你需要对同一数据做很多事情时,CPU 正好。

 

然而在实际应用中,后一种情形更多,也就是 CPU 更为灵活能胜任更多的任务。GPU 能做什么?关于图形方面的以及大型矩阵运算,如机器学习算法、挖矿、暴力破解密码等,GPU 会有所帮助。

 

简单地说,CPU 擅长分支预测等复杂操作,GPU 擅长对大量数据进行简单操作。一个是复杂的劳动,一个是大量并行的工作。

 

其实 GPU 可以看作是一种专用的 CPU,专为单指令在大块数据上工作而设计,这些数据都是进行相同的操作。

 

要知道处理一大块数据比处理一个一个数据更有效,执行指令开销也会大大降低,因为要处理大块数据,意味着需要更多的晶体管来并行工作,现在旗舰级显卡都是百亿以上的晶体管。

 

CPU 呢,它的目的是尽可能快地在单个数据上执行单个指令。由于它只需要使用单个数据单条指令,因此所需的晶体管数量要少得多。

 

目前主流桌面 CPU 晶体管都是十亿以下,和顶级 GPU 相差十倍以上,但它需要更大的指令集,更复杂的 ALU(算术逻辑单元),更好的分支预测,更好的虚拟化架构、更低的延迟等等。

 

另外,像我们的操作系统 Windows,它是为 x86 处理器编写的,它需要做的任务执行的进程,在 CPU 上肯定更为高效,你想每个线程的任务并不相同,基本上难以并行化,完全发挥不了 GPU 的长处。

 

那么,可以预见在未来,随着 CPU 进一步强化处理数据块的能力,我们将看到 CPU 和 GPU 架构之间的融合,而且随着制造技术的进步和芯片的缩小,GPU 也可以承担更复杂的指令。

 

CPU 与 GPU 间的分工虽然还是大有不同,但彼此间的交集无疑会更多。