让小学生专心做加法,让教授去写论文,系统才能跑得又快又稳

咱们不妨把CPU看成一位什么都懂的大学教授,而GPU则是一群只会做加法口算的小学生。虽说教授学识渊博,但让他在一秒钟内连续算500道加法题,恐怕还是有些困难。可要是让成百上千个小学生同时动手,这任务轻轻松松就能搞定。这背后的秘密就在它们的架构设计上:CPU追求的是样样精通,而GPU则专注于如何同时干更多的活。 如果你打开芯片版图去看,就会发现CPU的主要地盘被高速缓存和控制单元占满了,剩下给算术逻辑单元(ALU)的地方非常少。GPU的做法就不一样了,它把芯片面积的90%以上都留给了ALU,把控制单元简化到了极致。所以在同样大小的硅片上,CPU通常只有8个核心,而GPU能塞进1024个核心。核心数量多了,并行运算的能力自然就水涨船高了。 咱们再来看图形渲染这事儿。一张1080P的图片大概有200万个像素点,每个像素都得执行同样的着色器代码。如果CPU像教授那样按顺序一个一个处理,哪怕是性能再好的CPU也得跑半天。但要是让每个小学生负责一块区域,大家同时做同一件事,速度马上就能提升好几个档次。这就是GPU特有的“单指令多数据”(SIMD)模式:发一个命令给不同的数据,就像合唱队一起唱,效率一下子翻了倍。 GPU有个奇怪的地方:它的指令集非常简单。CPU的指令集就像一本百科全书,啥都能干;而GPU的指令集薄得像张名片,只管算不管管。没有中断、没有内存管理单元(MMU)、也没有IO握手这些复杂的动作,功耗因此低得吓人。这种纯粹的计算机器才是它能在短时间内输出海量浮点运算结果的法宝。 到底什么活该让GPU来干?其实就一句话:计算简单、重复度高、数据量大。比如图形图像处理中的像素着色、科学计算里的粒子模拟或者是加密货币挖矿本质上也是在做大规模的哈希运算。CPU把这些“体力活”交给GPU去做,自己则腾出精力去负责任务调度、IO操作和复杂逻辑的处理——这就是最佳搭档的分工模式。 希望你能明白:GPU并不是CPU的敌人,而是并肩作战的队友——让小学生专心做加法,让教授去写论文,系统才能跑得又快又稳。