1. GPU概述:GPU发展简史、GPU与CPU的区别、GPU在AI时代的核心地位
1.1 从图形卡到通用计算:GPU发展简史
说起GPU,很多人第一反应是打游戏用的显卡。其实,GPU的诞生确实是为了图形渲染。我入行那会儿,GPU还叫“图形加速卡”,功能单一得很。
1999年,NVIDIA发布了GeForce 256,第一次提出了“GPU”这个概念。它能把几何变换和光照计算从CPU手里接过来。说白了,就是让CPU喘口气,专心干别的活。
2006年是个转折点。NVIDIA推出了CUDA架构,GPU开始能跑通用计算了。我记得当时团队里有人开玩笑说:“这玩意儿以后不会要取代CPU吧?”嗯,虽然没完全取代,但GPU确实开辟了新战场。
2012年,AlexNet在ImageNet大赛上大放异彩,用的就是GPU训练。从那以后,AI界彻底“真香”了。你想想看,一个原本用来画三角形的硬件,突然成了AI算力的核心,这转变够戏剧性的。
到了2020年代,GPU已经进化成专门的AI加速器。Tensor Core、稀疏计算、FP8精度……这些新特性全是冲着深度学习去的。我去年调试一个千亿参数模型时,深刻体会到:没有GPU,现代AI就是空中楼阁。
1.2 GPU与CPU:天生不同
很多人问我:“GPU和CPU到底差在哪?”我通常用一个比喻回答:CPU是大学教授,GPU是流水线工人。
CPU擅长处理复杂、串行的任务。它有大缓存、强控制单元,能处理各种分支预测和乱序执行。你写个操作系统、跑个数据库,CPU是绝对主力。
GPU呢?它擅长简单、并行的任务。成千上万个核心同时干活,每个核心干的事很简单——算个矩阵乘法、做个向量加法。但架不住核心多啊!
来看个直观对比:
| 特性 | CPU | GPU |
|---|---|---|
| 核心数量 | 4-32个 | 数千个 |
| 缓存大小 | 大(MB级) | 小(KB级) |
| 控制单元 | 复杂 | 简单 |
| 并行度 | 低(线程级) | 高(数据级) |
| 典型功耗 | 65-150W | 150-450W |
| 适用场景 | 操作系统、数据库 | 图形渲染、AI训练 |
我曾经在一个项目中,试图用CPU做图像处理。1280x720的图片,每像素做个简单滤波,CPU跑了200毫秒。换成GPU,同样的算法,2毫秒搞定。这就是并行计算的威力。
核心区别一句话总结:CPU是“少而精”,GPU是“多而糙”。但“糙”不代表差,在特定场景下,“多”就是正义。
1.3 GPU在AI时代的核心地位
为什么AI离不开GPU?说白了,深度学习的核心操作就是矩阵乘法。一个神经网络层,本质上就是一堆矩阵乘加运算。
你想想看,训练一个GPT-3模型,需要做多少次矩阵乘法?答案是:数万亿次。如果用CPU跑,估计得跑到地老天荒。GPU的并行架构,天生就是为这种计算设计的。
我参与过一个小型推荐系统的部署。模型不大,但用户请求量巨大。用CPU推理,单次请求延迟5毫秒,但并发一上来就崩了。换成GPU,延迟降到0.5毫秒,并发量提升20倍。嗯,这就是硬件的差距。
现在主流的AI框架——PyTorch、TensorFlow、JAX——底层都依赖CUDA或ROCm。没有GPU加速,这些框架的性能会断崖式下跌。
个人经验:如果你刚开始接触GPU编程,建议从PyTorch入手。它封装了底层细节,让你能快速看到GPU加速的效果。我当年从CUDA C开始学,踩了不少坑。现在的新人幸福多了。
GPU在AI领域的核心地位,体现在三个层面:
- 训练阶段:大规模并行计算,缩短模型训练时间。从几周缩短到几天,甚至几小时。
- 推理阶段:低延迟、高吞吐。实时语音识别、图像分类,GPU都能胜任。
- 模型部署:TensorRT、ONNX Runtime等工具,专门优化GPU推理性能。
避坑指南:我曾经犯过一个错误——以为GPU越多越好。实际上,多卡通信的开销可能抵消计算加速。小模型用单卡就够了,大模型才需要多卡并行。别盲目堆硬件。
展望未来,GPU的进化方向很明确:更高的并行度、更低的数据精度、更智能的调度。NVIDIA的Hopper架构引入了Transformer Engine,专门优化Transformer模型。AMD的CDNA架构也在追赶。这场算力竞赛,远未结束。
好了,第一章就聊到这儿。GPU的世界很大,我们后面慢慢展开。