你玩《赛博朋克2077》时画面丝滑,剪4K视频时时间轴不卡顿,甚至用Stable Diffusion生成一张图只要几秒——这些都不是CPU在单干,背后真正发力的,是GPU里的成百上千个“小工人”。
GPU不是一块大芯片,而是一群小核的工厂
CPU像一位经验老道的项目经理,擅长处理复杂、有先后顺序的任务:打开微信、切到浏览器、再点开一个PDF……它靠的是高主频+强单线程能力。GPU则完全不同:它把任务拆成几千份,让成千上万个结构简单但高度一致的计算单元(也就是“CUDA核心”“流处理器”)同时开工。
举个生活例子:CPU煮一锅汤,得先烧水、放料、调火、尝味、关火——步骤不能乱;GPU则是雇了2000个阿姨,每人手里一碗汤料,统一倒进大锅、统一开火、统一搅拌——谁也不等谁,效率翻着倍涨。
核心怎么“并行”?看它怎么分发任务
GPU不直接执行C语言写的for循环,而是把计算打包成“线程块(Thread Block)”,再分配给“流多处理器(SM)”。每个SM里有几十个核心、共享内存和调度器。比如NVIDIA RTX 4090的GA102芯片,有128个SM,每个SM含128个CUDA核心,加起来就是16384个核心同时跑。
它不靠“快”,靠“多”和“齐”:所有核心听同一套指令(SIMT架构),但各自处理不同数据。渲染一帧游戏画面时,每个像素的光照、阴影、反射都由不同核心同步算出。
简单代码对比,感受差异
CPU传统方式(串行):
for (int i = 0; i < 1000000; i++) {
result[i] = sqrt(input[i]) * 0.5f;
}GPU常用写法(并行,伪代码示意):
// 每个线程只算一个元素
__global__ void gpu_sqrt(float* input, float* result, int n) {
int idx = blockIdx.x * blockDim.x + threadIdx.x;
if (idx < n) {
result[idx] = sqrtf(input[idx]) * 0.5f;
}
}它为啥不怕“重复劳动”?靠的是硬件设计
GPU核心本身很“轻”:没有大缓存、不搞复杂分支预测、连寄存器都精简。但它堆得多、连得密——核心之间通过超宽总线直连,数据能像快递流水线一样快速分发。显存带宽动辄1TB/s(RTX 4090达1008GB/s),相当于每秒搬空50本《新华字典》的数字量。
所以别再问“GPU频率低为啥比CPU快”——它不是跑得快,是干活的人多、通道宽、不摸鱼。
日常中,你其实天天在调用GPU核心
微信发高清照片自动压缩、抖音拍完立刻加滤镜、Windows截图时边缘自动柔化……这些看似“顺手”的功能,背后都是GPU在默默调用数百个核心做图像缩放、色彩矩阵运算或高斯模糊。就连浏览器打开网页,文字渲染、滚动动画、CSS3过渡效果,也都早被GPU接管了。
下次看到任务管理器里“GPU 0% → 98%”,别慌——那不是显卡发烧,是它终于等到活儿,正带着上万兄弟热火朝天地干呢。