这是一个很经典的问题。简单直接的答案是:GPU 和 CPU 的设计目标完全不同,导致它们的硬件资源分配方式有很大差异。
我们可以把一个现代 CPU 比作几位顶尖的数学教授,而把 GPU 比作几千个小学生。
1. CPU(数学教授):擅长复杂多变的难题
CPU 的核心设计哲学是低延迟。它需要能在极短时间内响应并处理任何一种计算任务。为了做到这一点,CPU 把大量的芯片面积(晶体管)用在了以下几个地方:
强大的控制单元:用来解析复杂、分支众多的软件指令(比如 if...else... 循环)。
大容量的缓存:用来预存数据和指令,避免去内存慢吞吞地读取。这是为了减少核心“等待”的时间,从而降低延迟。
复杂的算术逻辑单元:每个核心都能处理非常复杂的数学运算(如除法、平方根、三角函数等)。
工作方式:一个核心会专心致志地把一项复杂任务处理完,再处理下一项。不怕任务难,但怕任务太多、太碎。
2. GPU(成千上万的小学生):擅长简单重复的大量任务
GPU 的设计哲学是高吞吐量。它的任务是同时处理成千上万个结构相似、相互依赖小的简单任务。为了实现这一点,GPU 的芯片资源分配非常“极端”:
极简的控制单元:成百上千个小核心共享一个简单的控制单元。大家听同一个指挥,做同样的事。
极小、甚至没有独立缓存:每个核心几乎只有完成计算所需的最基本存储,把节省下来的宝贵晶体管都用来做下一个工作。
大量简单的算术逻辑单元:核心数量是 CPU 的成百上千倍。每个核心只能做非常基本的运算(比如加、乘),复杂的运算需要分解成很多步。
工作方式:大家一起动手,同时处理一块大数据的不同部分。一个核心出错或慢一点,对整个大任务影响不大。不怕任务简单重复,就怕任务有复杂的逻辑判断。
3. 关键性能差异表
4. 为什么在 AI 计算上 GPU 表现更好?
你之前问题里提到的智能算力(EFLOPS),其核心计算就是人工智能里最常见的矩阵乘法。这恰恰是 GPU 最擅长的任务:
虽然每个学生算得比教授慢得多,但人多的力量取得了压倒性的胜利。这就是 GPU 效能更高的根本原因。
总结
CPU 强于处理复杂的逻辑和任务调度,追求快;GPU 强于处理海量的简单重复计算,追求多。而人工智能训练正好是后者,所以 GPU 效能更高。
这就好比,解决一个复杂的微积分问题,一位教授胜过一千个小学生;但要算清一千张照片里每个人的脸,一千个同时工作的小学生就能轻松胜过一位教授。