简介

本文对视频内容进行专业总结,涵盖 GPU 工作原理、CUDA 生态、显卡选型、显存带宽与互联等核心概念,并补充当前 AI 算力市场格局,帮助算法工程师系统性地掌握显卡相关知识。

新书内部读者群(主要是会定期发样章):1085278303


一、GPU 与 CPU 的核心区别

维度 CPU GPU
比喻 全能博士 成千上万的小学生
擅长 复杂逻辑、分支跳转、系统调度 简单加减乘除的大规模并行计算
核心数 少(几个到几十个) 极多(数千个 CUDA 核心)
适用场景 通用计算、操作系统控制 矩阵运算、深度学习训练/推理

深度学习本质:无论是 Transformer 还是 CNN,底层都是矩阵运算,而矩阵运算本质上是大量简单的加减乘除操作。GPU 的并行架构恰好完美适配这一特性,因此成为 AI 时代的核心硬件。


二、CUDA:英伟达的核心护城河

  • 肉体与灵魂:GPU 是硬件(肉体),CUDA 是软件生态(灵魂)。
  • 本质:一套标准化的并行计算语言和运行时环境,让开发者能轻松指挥成千上万个 GPU 核心协同工作。
  • 不可替代性:PyTorch、TensorFlow 等主流框架均基于 CUDA 构建。即使硬件参数相近,其他厂商也难以复现 CUDA 的生态兼容性和开发工具链。

三、当前 GPU 市场格局

英伟达产品线

消费级(游戏显卡)

型号 显存 特点 备注
RTX 3090 24 G 性价比高,可跑 7 B 模型 24 G 显存可勉强容纳 7 B 模型
RTX 4090 24 G 算力更强 2023 年被美国禁售中国
RTX 4090 D 24 G 中国特供版,性能小幅阉割 专为中国市场推出

专业级(数据中心)

型号 显存 年代 关键特点 现状
V 100 32 G 2017 深度学习时代经典卡 已淘汰:不支持 BF 16 精度
A 100 40 G/80 G 2020 大模型训练主力 2022 年被美国禁售中国
H 100 80 G 2023 专为 Transformer 架构设计 被禁售
A 800 80 G 2022 (中国特供) 阉割互联带宽,单机 8 卡可用 被禁售
H 800 80 G 2023 (中国特供) 保留显存带宽和互联速度 被禁售
H 20 80 G 2024 (中国特供) 算力砍半,保留带宽和互联 当前可购买

关键见解:V 100 不支持 BF 16 精度,而 BF 16 是大模型时代最主流的训练精度,因此 V 100 在大模型场景下已完全淘汰。

其他厂商

厂商 产品 定位 优劣势
谷歌 TPU TPU v 5 专用矩阵运算芯片 优势:特定模型训练速度远超 GPU;劣势:灵活性极差,不支持非矩阵操作
苹果 M 系列 M 1/M 2/M 3 自研统一内存架构 CPU 和 GPU 共享内存(统一内存),适合端侧推理
华为昇腾 昇腾 910/920 国产替代 硬件参数接近 A 100 水平;软件生态(对标 CUDA)仍在追赶中;在信创/国企场景是唯一选择

四、显卡关键参数(由浅入深)

1. 显存(VRAM)

  • 对应 CPU 的内存,决定模型能否塞进一张卡
  • 常见规格:16 G/24 G/32 G/80 G
  • 大模型参数与显存参考(FP 16):
    • 7 B 模型约需 14-16 G 显存
    • 70 B 模型约需 140-160 G 显存(需多卡分布式)

2. 显存带宽(Memory Bandwidth)

  • 比喻:数据从内存送到运算单元的高速公路宽度
  • 带宽越宽,数据传输越顺畅,GPU 核心越不容易“饿着”
  • 参数单位:GB/s(如 A 100: 2000+ GB/s, H 100: 3000+ GB/s)

3. 卡间互联(Interconnect)

  • 多卡训练时,卡与卡之间需要高速通信(如 NVLink, PCIe)
  • 带宽不足时,多卡集群性能会严重受限
  • 参数单位:GB/s(如 A 100 通过 NVLink 可达到 600 GB/s)
  • 这是美国禁售策略中最常“砍一刀”的参数

五、显卡的代价:吞金兽

  1. 购买成本:A 100/H 100 售价数万至数十万元
  2. 电力消耗:H 100 功耗高达 700 W(相当于一个电火锅持续运转)
  3. 散热成本:需要专业制冷设备(液冷/空调)
  4. 维护成本:运维团队、故障处理、机房租赁

显卡是一次性投资,真正吃钱的是长期的电费和维护成本。


面试题与参考答案

Q 1: GPU 为什么适合深度学习?与 CPU 的本质区别是什么?

参考答案:深度学习的核心是矩阵运算,本质上是大量并行的加减乘除计算。CPU 拥有少量但强大的核心,擅长复杂逻辑和分支处理;GPU 拥有成千上万个简单核心,能同时进行海量并行计算。因此 GPU 比 CPU 更适合深度学习的计算模式,能实现数十倍到数百倍的速度提升。

Q 2: CUDA 为什么是英伟达的护城河?

参考答案:CUDA 提供了一套完备的并行计算生态,包括编程模型、编译器、库函数(cuBLAS、cuDNN)和运行时环境。PyTorch、TensorFlow 等主流框架均深度绑定 CUDA。即使其他厂商能做出参数相近的硬件,也无法在软件生态上与之匹敌,开发者迁移成本极高。因此,CUDA 是英伟达在 AI 时代的核心竞争力。

Q 3: V 100 为什么在大模型时代被淘汰?

参考答案:V 100 发布于 2017 年,不支持 BF 16(Bfloat 16)精度。BF 16 具有与大模型训练相同的指数位宽(8 位)但降低了尾数精度,能在保持训练稳定性的同时大幅降低显存占用。目前主流大模型(LLaMA 等)均使用 BF 16 训练,V 100 无法参与,因此在大模型场景下已被完全淘汰。但在非大模型任务(如 YOLO 训练)中仍可使用。

Q 4: 为什么 3090 性价比高但大厂不用它训练大模型?

参考答案:主要原因:①显存限制——24 GB 显存只能容纳 7 B 模型,训练更大模型需要多卡分布式,但 3090 没有高效的卡间互联(NVLink);②稳定性——消费级显卡缺乏 ECC 内存保护等企业级特性;③散热与电力——消费级显卡在 24/7 持续工作负载下可靠性较差;④规模效应——大厂采购 H 100 虽然单价高,但单卡算力和互联效率远高于消费级显卡,整体成本更低。

Q 5: 美国对华显卡禁售从技术角度产生了什么影响?

参考答案:①算力断崖——从 A 100 → A 800 → H 20,算力被多次阉割;②国产替代加速——华为昇腾等国产芯片获得更多商用机会;③软件生态差距——华为等厂商仍需在 CUDA 兼容性和开发工具链上追赶;④成本上升——受限版显卡虽然可用,但性价比下降,迫使企业多用卡数来弥补算力不足;⑤技术自主压力——长期看促使中国芯片和软件生态加速自主化。

Q 6: 显存、显存带宽、卡间互联三个参数中,对训练性能影响最大的是哪个?

参考答案:三者都很重要,但影响面不同:①显存决定能否运行模型(硬门槛);②显存带宽影响单卡训练效率,带宽不足会导致 GPU 核心空闲等待数据;③卡间互联在多卡训练时至关重要,互联带宽不足会导致集群扩展效率急剧下降。美国禁售策略中也正是先砍互联带宽,再砍算力,可见其重要性。对于单卡训练,显存带宽 > 显存容量 > 互联;对于多卡训练,卡间互联的重要性会大幅提升。

BF 16(Bfloat 16)是什么

一句话定义

BF 16 全称 Brain Floating Point 16(大脑浮点 16 位),是 Google Brain 团队为深度学习设计的一种16 位浮点数格式

与常见格式的对比

格式 总位数 指数位 尾数位 表示范围 精度
FP 32(单精度) 32 8 23 极大
BF 16 16 8 7 同 FP 32
FP 16(半精度) 16 5 10 较高
FP 8 8 4 或 5 3 或 4 很小

为什么 BF 16 是"大模型标配"

关键设计理念:保留指数位宽度(8 位),牺牲尾数精度。

  • 指数位决定数值范围:BF 16 的指数位与 FP 32 完全相同(8 位),所以它的数值范围与 FP 32 一样大(约 3.4×10³⁸),不会像 FP 16 那样在上亿权重的大模型中轻易溢出。
  • 尾数位决定精度:BF 16 的尾数只有 7 位,精度比 FP 16(10 位)低,但在深度学习中精度损失通常可以忽略
  • 显存减半:BF 16 只需 FP 32 一半的显存(一个参数从 4 字节降到 2 字节),这是大模型训练的关键优化。

类比理解

  • FP 32:用一页纸写一个数字,精确到小数点后 7 位。
  • BF 16:用半页纸写同一个数字,依然能写很大的数字(范围一样),但精确到小数点后 2 位。
  • FP 16:也是半页纸,但数字范围缩水了(只能写较小的数),不过精度比 BF 16 略高。

深度学习对数值范围的需求远大于对精度的需求,所以 BF 16 获胜。

实际影响 V 100 的例子

  • V 100(2017):支持 FP 16,不支持 BF 16
    • 用 BF 16 训练大模型 → 完全不能用
    • 用 FP 16 训练 → 容易溢出(数值太大超出范围),需要混合精度等复杂技巧
  • A 100(2020):原生支持 BF 16
    • 大模型训练从 A 100 开始成为主流,BF 16 是最常用精度

面试常考知识点

问题 答案
BF 16 与 FP 16 谁更好? BF 16 对于深度学习更好(范围大,训练稳定)
BF 16 相比 FP 32 节省多少显存? 节省 50%(16 位 vs 32 位)
V 100 为什么不能训大模型? 不支持 BF 16(没有硬件指令),FP 16 又容易溢出
训练 70 B 模型用 BF 16 需要多少显存? 约 140 GB(参数) + 梯度/优化器 → 实际约 300-400 GB

一句话总结:BF 16 = 保留 FP 32 的数值范围 + 显存减半 + 精度够用,是大模型训练时代的天选之子