GPU关键参数:CUDA核心数、显存容量、带宽与算力单位

当我们拿到一块GPU时,产品页上往往列着一串参数:CUDA核心数、显存容量、显存带宽、FP32算力……这些数字到底意味着什么?它们之间如何相互制约?要回答这些问题,需要先理解GPU的工作方式:GPU本质上是大规模并行处理器,它通过数千个简单计算单元同时处理数据。因此,衡量一块GPU的能力,核心就看三件事:有多少计算单元(核心数)、能放多少数据(显存容量)、数据搬运多快(带宽),以及单位时间能完成多少计算(算力)。

核心原理:四个参数如何协同决定GPU性能

CUDA核心是NVIDIA GPU中的基本计算单元,负责执行浮点运算、整数运算等指令。一个GPU包含数千个CUDA核心,它们被组织成多个流式多处理器(SM)。核心数越多,理论上并行执行的计算任务就越多。但核心数并非唯一决定因素——每个核心的时钟频率、指令效率同样重要。

显存容量决定了GPU能“同时握住”多少数据。以训练大语言模型为例,模型参数、梯度、优化器状态、中间激活值都需要驻留在显存中。如果显存不足,就需要将数据分片存储或频繁与CPU内存交换,这会极大拖慢训练速度。

显存带宽则是“数据搬运”的速率,单位通常为GB/s。它决定了GPU每秒能从显存中读取或写入多少数据。即使算力再强,如果带宽不足,计算单元就会因“等数据”而空转——这就是所谓的内存墙问题。

算力(TFLOPS)衡量的是GPU每秒能执行的浮点运算次数(以万亿次为单位)。但需要注意,算力分为不同精度:FP32(单精度)、FP16(半精度)、INT8(整数)等。AI训练常用FP16或BF16,推理则可能用到INT8量化,因此不能只看FP32算力。

关键公式:算力(TFLOPS)= CUDA核心数 × 时钟频率(GHz) × 每时钟周期浮点运算次数 ÷ 10³。例如,一块GPU有4096个核心,频率1.8GHz,每核心每周期执行2次FP32运算,则FP32算力 = 4096 × 1.8 × 2 ÷ 1000 ≈ 14.7 TFLOPS。

GPU关键参数协同关系图 GPU 计算核心 SM 1 128 CUDA核 SM 2 128 CUDA核 SM 3 128 CUDA核 ... ... ... 总计:N 个 SM × 128 核心 核心数越多 → 并行能力越强 显存子系统 显存容量 如 80GB HBM3 决定模型规模上限 显存带宽 如 3.35 TB/s 决定数据搬运速度 数据 总线 算力 = f(核心数, 频率, 指令效率) FP32: 如 67 TFLOPS FP16: 如 134 TFLOPS INT8: 如 268 TOPS ⚠ 常见误区 • 核心数高 ≠ 实际性能强(还需看频率、架构效率、散热功耗) • 显存大 ≠ 训练快(带宽不足时大显存反而浪费) • TFLOPS 需注明精度(FP16 算力通常是 FP32 的 2 倍)

方法流程:如何读懂一张GPU规格表

面对一张GPU规格表,建议按以下顺序解读:

  1. 先看显存容量——判断能否装下目标模型。例如,70B参数模型以FP16加载需要约140GB显存,单张80GB的H100无法容纳,需多卡并行。
  2. 再看显存带宽——判断数据供给是否充足。带宽 = 显存频率 × 位宽 ÷ 8。例如,H100的HBM3带宽为3.35TB/s,而A100为2TB/s,差距明显。
  3. 然后看CUDA核心数与架构——核心数多代表并行能力强,但也要看架构代数(如Ampere、Hopper、Ada Lovelace),新架构的单个核心效率更高。
  4. 最后看算力(TFLOPS)——结合精度判断。训练场景关注FP16/BF16算力,推理场景关注INT8/FP8算力。

实用技巧:计算“算力/带宽”比值(单位:FLOP/Byte),称为运算强度。若该值过高,说明GPU计算能力远超数据供给能力,实际性能会受带宽限制;若过低,则计算单元可能闲置。理想情况下,应根据具体算子选择合适的GPU。

案例:用参数对比选择训练GPU

假设我们要训练一个13B参数的LLM,使用Adam优化器,混合精度训练(FP16)。粗略估算显存需求:

  • 模型参数:13B × 2字节(FP16)= 26GB
  • 梯度:13B × 2字节 = 26GB
  • 优化器状态(Adam需额外存储一阶和二阶动量):13B × 4字节 × 2 = 104GB
  • 中间激活值:视batch size而定,通常额外占用10~30GB

总计约需160~190GB显存。因此单张80GB的GPU无法训练,至少需要3~4张。此时对比两张候选卡:

参数 GPU A(如A100 80G) GPU B(如H100 80G)
CUDA核心数 6912 14592
显存容量 80GB HBM2e 80GB HBM3
显存带宽 2TB/s 3.35TB/s
FP16算力 312 TFLOPS 989 TFLOPS
功耗 400W 700W

从参数看,GPU B的FP16算力是A的3倍以上,带宽提升67%。但功耗也高出75%。若训练任务以大规模矩阵乘法为主(如Transformer),GPU B能显著缩短训练时间;若任务受带宽限制(如小batch推理),则优势缩小。此外,还需考虑多卡互联带宽(NVLink/NVSwitch),因为跨卡通信可能成为瓶颈。

误区与复盘:参数≠性能的常见陷阱

误区一:只看CUDA核心数。核心数多但架构老、频率低,实际性能可能不如核心数少但新架构的产品。例如,GTX 1080 Ti(3584核心)的FP32算力约11.3 TFLOPS,而RTX 3060(3584核心)因架构更新,算力约12.7 TFLOPS,且功耗更低。

误区二:显存容量越大越好。如果带宽不足,大显存无法发挥效用。例如,某些专业卡配备48GB显存但带宽仅600GB/s,而游戏卡RTX 4090有24GB显存但带宽达1TB/s。在需要频繁读写显存的任务中,后者反而更快。

误区三:混淆不同精度的TFLOPS。厂商常标注“峰值算力”时使用FP16或Tensor Core的稀疏算力,数值可能是FP32的5~10倍。实际训练中,由于算子混合精度、内存布局、通信开销等因素,实测性能通常只能达到峰值的30%~60%。

复盘建议:选卡时,先明确任务类型(训练/推理/混合),再列出模型规模与batch size,估算显存需求;然后对比候选卡的带宽与算力比值;最后参考实际benchmark(如MLPerf)而非仅看纸面参数。记住:参数是必要条件,但不是充分条件——散热、功耗、互联拓扑、软件生态同样影响最终性能。