本文经超能网授权转载, 其它媒体转载请经超能网同意
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间的分工虽然还是大有不同, 但彼此间的交集无疑会更多.