第一章 课程导入:GPU的发展历史、应用领域、学习路径与课程目标

图形处理器(Graphics Processing Unit,GPU)最初的设计目标仅仅是为了加速计算机屏幕上的图形渲染,让游戏画面和图形界面更加流畅。然而,过去二十年间,GPU 的演进轨迹远超所有人的预期——它从一颗“画图芯片”蜕变为驱动人工智能、高性能计算、科学仿真、自动驾驶乃至元宇宙的算力基石。理解 GPU 的来龙去脉,不仅是学习硬件设计的第一步,更是把握未来计算架构演进方向的关键。本章作为整个课程的导入,将系统梳理 GPU 的发展历史、核心应用领域、学习路径与课程目标,帮助你在进入微架构、流水线、存储层次等硬核内容之前,建立起完整的知识坐标系。

GPU 知识体系与学习路径全景图 GPU 核心 并行计算引擎 发展历史 1999-2025 固定管线 → 可编程着色器 统一着色器 → CUDA 通用计算 AI 加速 → 专用 Tensor Core 应用领域 四大主战场 图形渲染 / 游戏 / 影视 AI 训练 / 推理 / 大模型 科学计算 / 仿真 / 基因 自动驾驶 / 边缘 / 嵌入式 学习路径(本课程 30 章) 基础 → 微架构 → 存储/互联 → 编程模型 → 硬件设计 → 前沿专题 图 1-1 GPU 知识体系:历史、应用与学习路径的三角关系

1.1 GPU 的发展历史:从图形加速卡到通用计算平台

1.1.1 核心原理:为什么 GPU 会诞生?

在 1990 年代初期,计算机的图形显示完全依赖 CPU 进行像素计算。CPU 作为通用处理器,擅长执行复杂的控制流和分支逻辑,但面对海量像素的并行填充、纹理映射、光照计算时,其串行执行模型显得力不从心。以 640×480 分辨率、60 帧/秒为例,每秒需要处理约 1840 万个像素,每个像素涉及颜色插值、深度测试、纹理采样等数十次浮点运算——这对当时的 CPU 而言是天文数字。

GPU 的诞生正是为了解决这一“并行图形计算”瓶颈。其核心设计哲学是:用大量简单的计算单元(ALU)替代少量复杂的控制单元,以吞吐量(Throughput)优先于延迟(Latency)。CPU 追求单线程极致性能,而 GPU 追求的是“人多力量大”——通过数千个线程同时执行相同的指令流,掩盖访存延迟,实现大规模并行。

1.1.2 发展历程:四个关键阶段

阶段时间代表产品关键特征架构变革
固定功能管线1995-20003dfx Voodoo、NVIDIA TNT2硬件固定渲染管线,不支持编程顶点/像素操作由专用电路完成
可编程着色器2001-2006GeForce 3、Radeon 9700Vertex Shader / Pixel Shader 可编程引入汇编级着色器语言
统一着色器与 GPGPU2006-2015GeForce 8800 GTX、Fermi统一着色器架构,CUDA/OpenCL 通用计算顶点/像素/几何着色器统一为流处理器
AI 与专用加速2016-至今Volta、Ampere、Hopper、AdaTensor Core、RT Core、NVLink、C2C为深度学习矩阵运算定制硬件单元

2006 年是一个分水岭。NVIDIA 发布 GeForce 8800 GTX,首次采用统一着色器架构(Unified Shader Architecture),将过去分离的顶点着色器和像素着色器合并为通用的流处理器(Streaming Processor),并推出 CUDA(Compute Unified Device Architecture)编程模型。这意味着 GPU 不再只是图形芯片,而是一个可以运行通用并行程序的协处理器。此后,GPU 在科学计算、金融分析、分子动力学等领域迅速普及。

1.1.3 案例拆解:从 GeForce 256 到 A100 的架构演进

以 NVIDIA 产品线为例,1999 年 GeForce 256 首次提出“GPU”概念,集成了 2300 万晶体管,拥有 4 条像素管线,核心频率 120MHz。到 2020 年 A100 发布时,集成 542 亿晶体管,拥有 6912 个 CUDA 核心和 432 个 Tensor Core,支持 FP16 混合精度训练,AI 算力达到 312 TFLOPS(稠密)。二十年间,晶体管数量增长约 235 倍,AI 算力增长超过 10 万倍。这一演进背后是架构从“专用电路”到“通用并行 + 专用加速”的深刻转变。

关键启示:GPU 架构的每一次重大变革,都是由“应用需求”驱动的。早期是游戏画质需求推动可编程着色器;2006 年后是科学计算需求推动统一架构;2016 年后是深度学习需求推动 Tensor Core。学习 GPU 硬件设计,必须理解“应用-架构-电路”三者之间的反馈闭环。

1.1.4 常见误区与总结

  • 误区一:认为 GPU 只是“显卡”,与 CPU 无关。实际上现代 SoC 中 GPU 与 CPU 通过高速总线(如 PCIe、NVLink、C2C)紧密耦合,共享内存或统一寻址。
  • 误区二:认为 GPU 频率越高性能越好。GPU 性能取决于并行度、访存带宽、调度效率、功耗墙等多维因素,频率只是其中一个变量。
  • 误区三:忽略功耗与散热。GPU 的 TDP 从早期的几十瓦到如今 A100 的 400W、H100 的 700W,功耗墙已成为架构设计的核心约束。

总结:GPU 的发展史是一部“并行计算架构”的进化史。理解其历史,不是为了背诵年份,而是为了把握架构演进的逻辑——为什么固定管线被可编程取代?为什么统一着色器成为主流?为什么今天需要 Tensor Core?这些问题的答案,将贯穿整个课程。

1.2 GPU 的应用领域:四大主战场

1.2.1 核心原理:GPU 的适用场景边界

GPU 并非万能加速器。它的优势在于数据并行(Data Parallelism)——即大量数据元素执行相同或相似的计算操作,且相互之间依赖较少。典型的适用场景包括:矩阵乘法、卷积、图像滤波、蒙特卡洛模拟、粒子系统等。相反,如果任务包含大量分支跳转、递归调用、串行依赖,GPU 的效率会大幅下降。因此,判断一个应用是否适合 GPU 加速,需要分析其并行度、访存模式、计算密度(Arithmetic Intensity)。

1.2.2 四大应用领域详解

领域典型负载关键 GPU 特性代表产品/技术
图形渲染游戏、影视特效、VR/AR光栅化、光线追踪、纹理单元RTX 系列、PlayStation 5 GPU
AI 计算大模型训练、推理、推荐系统Tensor Core、混合精度、NVLinkA100/H100、TPU(竞品)
科学计算分子动力学、气象模拟、CFD双精度算力、ECC 内存、NVLinkV100、MI250X
自动驾驶/边缘目标检测、传感器融合、路径规划低功耗、实时性、功能安全Orin、Jetson、EyeQ

1.2.3 实战场景:AI 大模型训练为何“非 GPU 不可”

以 级别的千亿参数大模型为例,训练一次需要约 10^23 次浮点运算。如果用 CPU 集群,假设单颗 CPU 提供 1 TFLOPS FP32 算力,需要 10^11 秒(约 3170 年)。而使用 10000 颗 A100 GPU(每颗 312 TFLOPS FP16),理论上仅需约 3.2×10^6 秒(约 37 天)。当然,实际训练还受限于显存容量、通信带宽、并行策略等因素,但 GPU 的算力密度优势是无可替代的。此外,GPU 的 Tensor Core 专门针对矩阵乘加运算优化,其 FP16 算力是 FP32 的 2 倍,FP8 更是达到 4 倍,这为混合精度训练提供了硬件基础。

经验提醒:在评估 GPU 选型时,不要只看“峰值算力”。需要同时考虑:显存容量(能否装下模型参数和中间激活)、显存带宽(HBM2e 可达 2TB/s 以上)、互联带宽(NVLink 600GB/s vs PCIe 4.0 32GB/s)、功耗与散热约束。峰值算力只是“理论天花板”,实际效率往往只有 30%-60%。

1.2.4 常见误区与总结

  • 误区一:“GPU 就是用来打游戏的”——这是最普遍的误解。实际上 AI 计算已占数据中心 GPU 出货量的 70% 以上。
  • 误区二:“GPU 能加速所有算法”——对于串行依赖强、分支密集的负载(如编译、数据库事务),GPU 可能比 CPU 更慢。
  • 误区三:“显存越大越好”——显存容量与带宽需要匹配。如果带宽不足,大显存也无法发挥算力。

总结:GPU 的应用领域已经从图形渲染扩展到 AI、科学计算、自动驾驶等“算力饥渴”场景。理解不同领域对 GPU 硬件特性的差异化需求(如 AI 需要 Tensor Core、科学计算需要双精度、自动驾驶需要低功耗),是进行硬件设计选型的前提。

1.3 学习路径与课程目标

1.3.1 核心原理:从“用 GPU”到“造 GPU”的认知跃迁

本课程的目标不是教你如何调用 CUDA 写程序,而是帮助你从硬件设计者的视角理解 GPU 内部的工作原理。这意味着你需要掌握:指令集架构(ISA)如何映射到硬件电路、流水线如何调度、存储层次如何设计、功耗如何优化、并行度如何挖掘。这是一条从“软件使用者”到“硬件架构师”的进阶之路。

1.3.2 课程知识体系与学习路径

本课程共 30 章,分为六个模块,每个模块解决一个核心问题:

  1. 基础篇(第 1-5 章):GPU 发展史、并行计算基础、图形渲染管线、GPU 编程模型(CUDA/OpenCL)、GPU 系统架构(PCIe/NVLink/CCIX)。
  2. 微架构篇(第 6-12 章):流处理器簇(SM)设计、线程调度与 warp 机制、流水线设计(取指/译码/执行/访存)、ALU 与特殊函数单元、Tensor Core 微架构、光线追踪硬件。
  3. 存储与互联篇(第 13-17 章):寄存器文件、共享内存、L1/L2 缓存层次、显存控制器(GDDR/HBM)、片上网络(NoC)、多 GPU 互联。
  4. 编程与编译篇(第 18-21 章):PTX 指令集、编译器优化、内存一致性模型、性能分析与调优工具。
  5. 硬件设计篇(第 22-26 章):RTL 设计基础、GPU 功能模块的 Verilog 实现、时钟/复位/功耗管理、物理设计(布局布线)、验证方法学。
  6. 前沿专题篇(第 27-30 章):chiplet 与 2.5D/3D 封装、存内计算、可重构 GPU、GPU 与量子计算/神经形态计算融合。

1.3.3 案例拆解:一个硬件工程师的 GPU 学习路线图

假设你是一名数字 IC 设计工程师,希望转型做 GPU 架构设计。建议的路径是:先用 2 周时间掌握 CUDA 编程(理解线程模型和内存模型),再用 4 周时间学习 GPU 微架构(重点理解 SM 内部结构、warp 调度、访存流水线),然后用 6 周时间动手实现一个简化版 GPU 核心(用 Verilog 实现一个支持基本指令的 SM),最后用 4 周时间学习 GPU 系统架构(存储一致性、互联协议)。总计约 16 周,可以完成从“软件视角”到“硬件视角”的初步转变。

风险提示:GPU 硬件设计是极其复杂的系统工程。不要期望在短期内设计出可商用的 GPU。本课程的目标是让你掌握核心原理和设计方法,能够读懂 GPU 架构文档、参与 GPU 相关 IP 的设计与验证、进行性能瓶颈分析。真正的 GPU 设计需要团队协作和多年积累。

1.3.4 常见误区与总结

  • 误区一:“先学 Verilog 再学架构”——建议先建立架构概念,再动手写 RTL,否则容易“只见树木不见森林”。
  • 误区二:“只学 NVIDIA 架构”——虽然 NVIDIA 是市场领导者,但 AMD、Intel、Apple、Arm 的 GPU 架构各有特色,应对比学习。
  • 误区三:“忽略软件栈”——硬件设计必须考虑编译器、驱动、运行时库的配合。不理解 CUDA 的线程调度,就无法理解硬件为何这样设计。

总结:学习 GPU 硬件设计是一条“理论-实践-再理论”的螺旋上升路径。本课程将为你提供完整的知识框架、关键的设计方法论和实战案例,但真正的能力提升需要你在课后动手实验、阅读、参与开源项目(如 MIAOW、GPGPU-Sim)来持续打磨。

本章核心要点回顾:
  • GPU 的诞生源于图形渲染的并行计算需求,其核心设计哲学是“吞吐量优先于延迟”。
  • GPU 发展经历了固定管线、可编程着色器、统一架构、AI 加速四个阶段,每一次变革都由应用需求驱动。
  • GPU 的四大应用领域(图形、AI、科学计算、自动驾驶)对硬件特性有差异化需求。
  • 本课程 30 章分为六大模块,从基础到前沿,覆盖 GPU 硬件设计的完整知识链。
  • 学习 GPU 硬件设计需要“软件视角”与“硬件视角”并重,理解架构与电路的映射关系。