GPU 与 CPU 架构差异 📅 2026/7/18 20:46:08 SIMT 模型 + 为什么GPU适合大规模并行 + 延迟(Latency) vs 吞吐量(Throughput)设计取向一、为什么要先搞懂这个?不理解会踩什么坑1.1 用 CPU 思维写 CUDA 代码会遇到的问题CPU程序员的直觉: "核心数量多 = 好,能同时干的事多" "线程越少越好控制,线程切换有开销要尽量避免" "缓存命中率要尽量高,这是性能优化的核心" 拿这套直觉直接套在GPU上,会出现的困惑: 为什么GPU程序动不动就要启动几千几万个线程? (CPU上几千个线程早就把系统拖死了) 为什么单个GPU线程执行得比CPU线程慢很多,但总体反而更快? 为什么GPU的"核心"(CUDA Core)性能远不如CPU的一个核心? 问题根源: CPU和GPU压根不是在优化同一个目标, 不先搞清楚这个目标差异,后面学的Warp、Occupancy、 内存合并访问全都会觉得"莫名其妙为什么要这样设计"1.2 一句话先立住CPU 的设计目标:让"一件事"尽快做完 → 延迟优化(Latency-oriented) GPU 的设计目标:让"一大堆同类的事"尽快做完 → 吞吐量优化(Throughput-oriented) 这不是谁比谁"强",是针对不同问题形状的两种截然不同的工程取舍。 CPU擅长的场景GPU干不好,GPU擅长的场景CPU干不好,两者互补而非替代。二、CPU 的设计取向:把"单个任务"做到最快2.1 核心设计目标CPU 面对的典型场景