GPU基础知识

1. 介绍

GPU(Graphics Processing Unit,图形处理器)是一种专门设计的微处理器,其核心特点是拥有数以千计的小型、高效的计算核心,能够同时执行海量的、重复的、简单的计算任务。它最初是为了加速图形渲染而生,但现在已广泛应用于科学计算、人工智能等领域。

CPU 是一个顶尖的数学教授,而 GPU 则是一个由几千名小学生组成的巨大班级。

  • 教授 (CPU): 你可以交给他任何复杂、需要按步骤推理的难题(比如一篇复杂的博士论文),他能以极快的速度独立完成。但如果你让他同时计算 1000 道 “1+1=?” 的算术题,他必须一道一道地算,速度再快也有限。
  • 小学生班级 (GPU): 你无法让他们写博士论文。但如果你把那 1000 道 “1+1=?” 的题分发下去,每个学生领一道,然后大喊一声 “ 开始!”,几乎在同一瞬间,你就能得到所有答案。

这个类比完美揭示了核心思想:CPU 擅长处理复杂、串行的任务,而 GPU 擅长处理海量、简单、并行的任务。

1.1 GPU Vs CPU

特性中央处理器 (CPU)图形处理器 (GPU)
设计哲学延迟优化 (Latency Optimized)吞吐量优化 (Throughput Optimized)
核心特点核心少(4-64 个),但每个核心都极其强大和复杂。核心多(数千个),但每个核心相对简单。
缓存巨大的多级缓存(L1, L2, L3),用于加速单线程访问速度。较小的缓存,主要用于协调大量线程的数据共享。
任务类型擅长复杂、多变、需要逻辑判断的串行任务擅长海量、重复、计算密集型的并行任务
执行方式复杂的分支预测、乱序执行,最大化单线程性能。SIMT 模型,用大量线程掩盖内存访问延迟。
适用场景操作系统、数据库、网页浏览、通用应用软件。深度学习、科学计算、图像渲染、密码破解。

1.2 原理

GPU 的工作本质上是一个 “ 委托 - 执行 - 返回 “ 的流程,由 CPU(称为 Host)和 GPU(称为 Device)协作完成。

1
2
3
4
5
6
7
8
9
10
11
12
+-----------------+      1. 数据和计算任务      +-----------------+
| CPU | ------------------------> | GPU |
| (Host) | | (Device) |
| | <------------------------ | |
+-----------------+ 4. 返回计算结果 +-----------------+
|
| 2. 在数千个核心上
| 并行执行任务
V
[核1][核2]...[核N]
[核..][核..]...[核..]
[核..][核..]...[核..]

1.3 注意事项

  1. 最小化 Host-Device 数据传输:这是 GPU 编程的第一性能法则。频繁地在 CPU 和 GPU 之间来回拷贝数据会严重拖慢程序,甚至比只用 CPU 还慢。尽量把数据一次性发给 GPU,在 GPU 上完成所有能完成的计算,最后再把结果取回。
  2. 最大化并行度:给 GPU 的任务量一定要足够大。如果只让它计算 100 个元素的向量加法,启动和数据传输的开销可能远大于计算本身。GPU 喜欢 “ 批量业务 “。
  3. 避免线程发散 (Thread Divergence):在 SIMT 模型中,一组线程(通常是 32 个,称为一个 “Warp”)会同时执行相同的指令。如果你的代码里有 if-else 分支,且同一个 Warp 内的线程走了不同的分支,那么硬件需要依次执行 if 的代码和 else 的代码,不满足条件的线程则会闲置等待。这会大大降低效率。
  4. 合理管理内存:GPU 的显存(VRAM)通常比主内存(RAM)小得多且昂贵。要时刻注意显存占用,避免 “ 爆显存 “。

1.4 陷阱

盲目地将所有 for 循环都改成 GPU Kernel”

  • 原因:不是所有的循环都适合并行化。如果循环的每次迭代都依赖于上一次的结果(例如 x[i] = x[i-1] + 1),那么它本质上是串行的,强行并行化会得到错误结果。

不理解 CUDA 是什么

  • 很多初学者认为 CUDA 是一种独立的编程语言,或者仅仅是驱动程序。CUDA (Compute Unified Device Architecture) 是由 NVIDIA 推出的一个并行计算平台和编程模型。它不仅仅是一个 API,而是一个完整的生态系统。包括:
  • 对 C/C++ 和 Fortran 的语言扩展(如 __global__threadIdx)。
  • 一套丰富的库(cuBLAS, cuDNN, cuFFT 等),提供了针对线性代数、深度神经网络、傅里叶变换等常用操作的高度优化实现。
  • NVIDIA 凭借 CUDA 建立了强大的生态。

1.5 GPU 架构

  • Tesla (2006): GPGPU 的开端。这个架构催生了 CUDA 平台,首次让开发者能使用 C 语言来调用 GPU 的大规模并行计算能力,正式开启了 GPGPU(通用计算图形处理器)时代。
  • Fermi (2010): HPC 的敲门砖。首次引入了 ECC 内存(错误检查和纠正)、更强的双精度(FP64)计算能力,让 GPU 真正走进了对可靠性要求极高的超级计算中心。
  • Kepler & Maxwell (2012-2014): 能效比革命。这两个架构大幅提升了每瓦性能,帮助 NVIDIA 在游戏市场确立了绝对的领先地位,成为游戏玩家的宠儿。
  • Pascal (2016): 深度学习的引爆点。以 Tesla P100 为代表,引入了专为 AI 设计的 NVLink 高速互联和 HBM2 显存。Pascal 架构几乎完美契合了当时兴起的深度学习浪潮,成为第一代 AI 训练的“标准硬件”。
  • Volta (2017): AI 专用硬件诞生。Volta 架构是 NVIDIA 的“AI 战略转折点”,在 Tesla V100 中首次引入了专门用于深度学习矩阵运算的 Tensor Core,让 AI 训练速度实现了数量级的飞跃。
  • Turing (2018): 图形学的革命。与 Volta 同期,Turing 架构将革命带回图形领域。它首次引入了 RT Core(用于加速光线追踪计算),实现了游戏画面的“实时光线追踪”。从此,GPU 演变为“CUDA Core (通用) + Tensor Core (AI) + RT Core (图形)”三位一体的混合计算架构,品牌也从“GTX”进化到了“RTX”。
  • Ampere (2020): AI 算力成熟体。以 A100GeForce 30 系列为代表,全面升级了三类核心,特别是 Tensor Core 支持了更多数据精度 (如 TF32),成为 AI 基础设施的绝对主力。A100 在过去几年中几乎是“大模型”的同义词。
  • Hopper & Ada Lovelace (2022) :为不同目标极致分化
    • Hopper (H100): 为大模型而生。几乎移除了所有不必要的图形功能,只为极致 AI 计算。引入了 Transformer Engine,专门加速大语言模型的核心 Transformer 架构。
    • Ada Lovelace (RTX 40 系): 为游戏与创作而生。大幅增强 RT Core 和 Tensor Core 性能,并推出了 DLSS 3(帧生成)技术,将游戏体验推向新高。
  • Blackwell (2024): 物理极限的突破者。通过将两个独立制造的 GPU Die(裸片)通过超高速互联封装在一起,共同作为一个巨大的 GPU 工作。这种 Chiplet (小芯片) 设计解决了单个芯片在尺寸和良率上的物理极限,是未来算力增长的关键方向。

2. GPU 厂商

目前消费级和数据中心市场主要是双雄争霸:NVIDIA (英伟达) 和 AMD (超微半导体)。Intel 也正携其 Arc 和 Data Center GPU Max 系列试图成为第三极。

  • NVIDIA:
    • 消费级(游戏/创作):GeForce RTX 系列 (如 RTX 4090, RTX 4070)
    • 专业工作站:NVIDIA RTX (原 Quadro) 系列
    • 数据中心(AI/HPC): A100 / H100 / B200
  • AMD:
    • 消费级(游戏/创作):Radeon RX 系列 (如 RX 7900 XTX, RX 7800 XT)
    • 数据中心(AI/HPC):Instinct MI 系列 (如 MI300X)

2.1 NVIDIA 类型

NVIDIA 将其 GPU 产品线精准地划分成了几个核心市场,每个市场都有完全不同的设计哲学、功能侧重、驱动支持和定价策略。我们可以将它们主要分为三大类(外加一个特殊类别):

  1. GeForce 系列:面向消费者(游戏玩家、创作者)。
  2. NVIDIA RTX™ 系列 (原 Quadro):面向专业工作站(设计师、工程师、艺术家)。
  3. Data Center 系列 (原 Tesla):面向企业和研究机构(AI 训练、高性能计算)。

GeForce 系列:为游戏和创作而生

NVIDIA 通常用数字命名,第一位(或前两位)代表代数(40 系列),后两位代表其性能等级(90 > 80 > 70 > 60)。Ti 后缀代表该型号的增强版。

级别代表型号 (示例)参数与性能特点价格范围 (USD)适用场景
旗舰级 (xx90)GeForce RTX 409024GB GDDR6X 显存,海量 CUDA 核心。性能怪兽,所有设置拉满的 4K 甚至 8K 游戏。~$1600+追求极致性能的发烧友、需要大量 VRAM 的 3D 艺术家和 AI 研究者(单卡)。
高端 (xx80)GeForce RTX 4080 Super16GB GDDR6X 显存,性能强劲,是流畅 4K 游戏的主力。~1000−1000 - 1000−1200高端游戏玩家、VR 爱好者、专业级视频剪辑和流媒体主播。
甜点级 (xx70)GeForce RTX 4070 Ti Super12GB/16GB GDDR6/X 显存,在 1440p (2K) 分辨率下提供极佳的游戏体验,性价比高。~600−600 - 600−800大多数主流游戏玩家的首选,能胜任大部分 3D 设计和视频编辑工作。
主流级 (xx60)GeForce RTX 40608GB GDDR6 显存,是 1080p 分辨率下的性能标杆,DLSS 技术能显著提升体验。~300−300 - 300−400预算有限但希望体验最新技术的玩家,入门级内容创作者。
入门级 (xx50)GeForce RTX 4050性能足以应对电竞游戏和轻度的图形任务。~200−200 - 200−300主要用于笔记本电脑,适合要求不高的游戏和日常使用。

NVIDIA RTX™ 系列 (原 Quadro):为稳定与精准而生

级别代表型号参数与性能特点价格范围 (USD)适用场景
顶级RTX 6000 Ada Generation48GB GDDR6 ECC 显存。为最极端的设计、模拟和渲染任务打造。~$6800+电影级 VFX 渲染、大规模 CAD 模型设计、复杂科学可视化、虚拟现实内容开发。
高端RTX 5000 Ada Generation32GB GDDR6 ECC 显存。平衡了性能和价格,面向主流高端专业用户。~$4000+汽车设计、建筑工程(BIM)、高级后期制作。
中端RTX 4000 Ada Generation20GB GDDR6 ECC 显存。是许多工程师和设计师的主力工作站配置。~$1250+主流 CAD 设计、3D 建模与渲染、多屏 4K/8K 视频编辑。
入门级 SFFRTX 2000 Ada Generation16GB GDDR6 ECC 显存。采用小尺寸(SFF)设计,可放入紧凑型工作站。~$625+2D/3D CAD 设计、多路高清显示输出(如金融交易台)。

Data Center 系列:为计算与智能而生

这是 NVIDIA 的王冠明珠,也是当前 AI 革命的引擎。这些产品不是 “ 显卡 “,而是 “ 计算加速器 “。

价格极为昂贵,按万美金计,且通常不直接卖给个人。

系列代表型号参数与性能特点价格范围 (USD)适用场景
BlackwellB200新一代架构,性能大幅超越 H100,专注于大模型推理和训练,能效比极高。是 GB200 超级芯片的核心。~30,000−30,000 - 30,000−45,000+训练和推理万亿参数级别的 LLM、下一代超级计算机、药物发现。
HopperH10080GB HBM3 内存,包含 Transformer Engine,专门加速 Transformer 模型。是当前训练大语言模型(如 GPT-4)的主力。~25,000−25,000 - 25,000−40,000大规模 AI 训练与推理、高性能计算 (HPC)、科学模拟。
AmpereA10040GB/80GB HBM2e 内存。上一代王者,依然在各大数据中心广泛使用,性能强大。~10,000−10,000 - 10,000−15,000各种 AI 训练任务、数据分析、云计算。

2.2 中国被禁止的卡

禁令的核心标准是芯片的 “ 综合运算性能 “(Total Processing Performance, TPP) 和 “ 性能密度 “(Performance Density)。一旦超过某个阈值,就需要申请出口许可,而这类许可通常不会被批准。

  • 核心禁令名单:
    • Data Center GPU: A100H100B100B200 以及未来的所有旗舰型号。还包括它们的低配版如 A800H800 (在 2023 年 10 月更新的禁令中也被禁了)。
    • 顶级专业 GPU: RTX 6000 Ada Generation
    • 顶级消费级 GPU: GeForce RTX 4090。是的,由于其强大的算力,这款游戏卡也被列入了出口管制名单,因为它可能被用于 AI 计算。
  • 在 2023 年 10 月禁令收紧后,A800 和 H800 也无法出口。NVIDIA 随后规划了新一批符合规则的芯片,性能进一步缩水:
    • H20:被认为是 H100 的严重降级版。虽然保留了较大的 HBM 显存,但计算性能(FP16/FP8 算力)被大幅削减,性能密度远低于 H100
    • L20 和 L2:基于 Ada Lovelace 架构的降级版,分别对标 L40S 和 L4,主要面向推理和图形工作,计算性能也受到严格限制。

2.3 RTX 4090D 是什么

RTX 4090D 是一个非常特殊的产品,它的存在完全是地缘政治的产物。这里的 “D” 代表 “Dragon”,意指为 2024 龙年特别发布,但其本质是 NVIDIA 为遵守美国最新的出口管制条例而专门为中国大陆市场设计的 “ 降级版 “RTX 4090。

CUDA 核心 16,384 个到 14,592 个减少了约 11%。这是最核心的削减,直接导致了游戏和计算性能的下降。

一句话总结: RTX 4090 D 是一个在硬件上屏蔽了部分计算单元、并在软件上锁死超频潜力的 RTX 4090,其综合性能比标准版低了约 5% - 10%,以确保其 “ 合法 “ 地在中国市场销售。

2.4 核心有多少

你可以把一个 GPU 核心想象成一个流水线上的工人,而整个 GPU 就是一个拥有成千上万工人的巨型工厂。

  • GeForce RTX 4090: 16,384 个 CUDA 核心
  • RTX 6000 Ada: 18,176 个 CUDA 核心
  • Data Center H100 (SXM5): 15,872 个 CUDA 核心
  • Data Center B200: 20,736 个 CUDA 核心 (由两个 Die 组合而成)

3. 参考资料