LLM 基础设施 · 算力与硬件

大模型算力三重奏:
Tensor Core、TFLOPS 与 Transformer / Self-Attention

芯片怎么算、算力怎么标、模型要用多少算力——把三个问题一次串成一本「算力账本」

聊大模型算力,绕不开三个词:Tensor Core(芯片里真正的算力来源)、TFLOPS(算力的度量单位)、Transformer / Self-Attention(吃掉算力的那个模型结构)。

三者的关系一句话就能说清:Tensor Core 是为矩阵乘设计的专用电路,Transformer 的算力 90% 以上是矩阵乘,而 TFLOPS 就是把前两者对上账的计量单位。本文按「芯片 → 指标 → 模型 → 账本」的顺序,把这条链路彻底打通。

Tensor Core

一、Tensor Core:GPU 里的「矩阵专用计算单元」

1. 与 CUDA Core 的本质区别

对比项CUDA CoreTensor Core
计算粒度标量(一次一个乘加)矩阵块(一次一个小矩阵乘加)
编程模型SIMT,线程级并行MMA 指令(Warp 级协作)
每周期吞吐每核约 1 次 FMA每周期 64 次以上 FMA
擅长场景通用逻辑、激活函数、逐元素运算矩阵乘(GEMM)

关键差别:CUDA Core 是「一个线程算一个数」,Tensor Core 是「一个 warp(32 线程)协作完成一小块矩阵乘法」。所以做 GEMM 时,Tensor Core 的吞吐是 CUDA Core 的数量级差异。

2. 混合精度:算得糙一点,快到飞起

Tensor Core 的核心设计是混合精度:

这样既拿到低精度的速度,又避免误差累积失控。这正是大模型训练能跑起来的前提——纯 FP32 训练慢得无法接受,纯 FP16 又会溢出,混合精度是唯一解。

3. 五代演进:精度一路下探到 FP4

代际架构(年份)新增精度里程碑
第一代Volta(2017,V100)FP16首次引入 Tensor Core,深度学习训练加速
第二代Turing(2018,RTX 20)INT8 / INT4面向推理的低精度整数运算
第三代Ampere(2020,A100)TF32 / BF16,2:4 结构稀疏稀疏跳过零值,吞吐翻倍
第四代Hopper(2022,H100)FP8Transformer 引擎,FP8 训练性能较 FP16 提升约 6 倍
第五代Blackwell(2024,B200/GB200)FP4面向生成式 AI 的海量计算,单芯片约 2080 亿晶体管

三条演进主线非常清晰:

  1. 精度持续下探:FP16 → FP8 → FP4,用「更少的比特」换更多的吞吐
  2. 矩阵块持续变大:基础 MMA 形状从 4×4×4 一路扩到 256×256,单指令吞吐更高
  3. 数据搬运持续解耦:TMA(异步张量内存访问)、TMA multicast 等机制让计算不等数据

4. 为什么 Transformer 是 Tensor Core 的「天作之合」

Transformer 的计算构成极其「偏科」:自注意力 + FFN 几乎全是矩阵乘(GEMM),占比 90% 以上。逐元素运算(LayerNorm、激活)只占极小头。

也就是说:Transformer 把算力需求精准地喂给了 Tensor Core 最擅长的那类运算。这不是巧合——GPU 架构演进与 Transformer 的兴起几乎同步发生(Volta 2017 = Transformer 论文同年),随后每一代都在为 Transformer 加料(Hopper 直接叫 Transformer 引擎)。

TFLOPS

二、TFLOPS:算力怎么算、怎么标

1. 先记一个基本换算

一次矩阵乘 [m,k] × [k,n] 的浮点运算量约为:

FLOPs ≈ 2 × m × k × n

每个输出元素要 k 次乘法 + k 次加法 ≈ 2k 次运算,共 m×n 个输出。「2」这个系数(乘+加)在所有估算公式里都会反复出现。

FLOPS = 每秒浮点运算次数;TFLOPS = 万亿次/秒(10¹²);PFLOPS = 千万亿次/秒(10¹⁵)。

2. 峰值算力是怎么来的

单卡峰值 TFLOPS ≈ SM 数 × 每 SM 的 Tensor Core 数量 × 每周期 FMA 数 × 2 × 主频

厂商标注的「算力」就是按这个上限算出来的理论峰值。

3. 三个「标注陷阱」

看规格书时,同样一张卡会出现好几个数字,务必看清口径:

陷阱说明
稠密 vs 稀疏开启 2:4 结构稀疏后理论上可翻倍(如 A100 312 → 624 TFLOPS)。稀疏需模型权重满足 2:4 零值模式,不是白给的
精度不同算力不同FP32 < TF32 < BF16/FP16 < FP8 < FP4,越低的精度算力越高。比算力必须先对齐精度
整机 vs 单卡GB200 是「2×B200 + Grace CPU」的超级芯片,宣传数字常是整机口径,别和单卡混着比

4. 主流 GPU 算力速查(公开规格,稠密口径)

GPU架构BF16/FP16FP8显存显存带宽互联
V100Volta125 TFLOPS—32GB HBM20.9 TB/sNVLink 300 GB/s
A100Ampere312 TFLOPS—80GB HBM2e~2.0 TB/sNVLink 600 GB/s
H100Hopper989 TFLOPS1979 TFLOPS80GB HBM33.35 TB/sNVLink 900 GB/s
H800Hopper989 TFLOPS1979 TFLOPS80GB HBM33.35 TB/sNVLink 400 GB/s(互联受限)
H20Hopper148 TFLOPS296 TFLOPS96GB HBM34.0 TB/s大幅受限
B200Blackwell~2.25 PFLOPS~4.5 PFLOPS192GB HBM3e8 TB/sNVLink 5(1.8 TB/s)
GB200Blackwell2×B200 + Grace—384GB HBM3e16 TB/sNVLink-C2C

数据为厂商公开规格的常见引用值(稠密、不含稀疏);不同来源口径(稀疏/整机)差异较大,选型请以官方 datasheet 为准。

从这张表能读出一个关键事实:H800 与 H100 算力完全相同,差别只在互联带宽——这直接说明「算力不是全部」。

5. 别只看 TFLOPS:三个同等重要的指标

H20 就是典型例子:FP16 只有 148 TFLOPS(不到 A100 一半),但显存 96GB、带宽 4.0 TB/s 都很能打——它是为「大显存 + 高带宽的推理」设计的,不是为训练设计的。

6. MFU:从峰值到现实的折扣率

MFU(Model FLOPs Utilization)= 模型实际达到的算力 / 硬件峰值算力。

所以「买卡看 TFLOPS,实际算力要乘 MFU」——这一步不做,容量规划必然翻车。

模型算力账本

三、Transformer / Self-Attention 的算力账本

1. Self-Attention 的 FLOPs 构成

注意力公式:

Attention(Q, K, V) = softmax(QK^T / √d_k) · V

以序列长度 n、头维度 d 计,每层注意力主要两项矩阵乘:

步骤矩阵乘FLOPs
QKᵀ(算相似度)[n,d] × [d,n]2n²d
PV(加权求和)[n,n] × [n,d]2n²d
合计≈ 4n²d

关键结论:注意力算力随序列长度平方增长(O(n²)),这是长上下文成本爆炸的根源(对应《注意力机制》一文的两笔账)。

2. 训练总算力:记住 C ≈ 6PD

工业界最常用的估算公式:

训练总 FLOPs  C ≈ 6 × P × D

算例:7B 模型训练 1T tokens:

C ≈ 6 × 7×10⁹ × 1×10¹² = 4.2 × 10²² FLOPs

3. 把算力账本闭环:训练要跑多久

有了峰值算力、MFU 和总 FLOPs,就能算出训练时间:

训练时间 T = 6PD / (N × F_peak × MFU)

算例:用 512 张 H100(BF16 峰值 989 TFLOPS)训 70B 模型、200B tokens,设 MFU = 45%:

总 FLOPs   = 6 × 70×10⁹ × 200×10⁹ = 8.4 × 10²²
集群算力   = 512 × 989×10¹² × 0.45 ≈ 2.28 × 10¹⁷ FLOPS
训练时间   ≈ 8.4×10²² / 2.28×10¹⁷ ≈ 3.7 × 10⁵ 秒 ≈ 4.3 天

这就是「算力账本」的威力:P、D、N、F、MFU 五个数一填,时间就出来了——反过来也能估算需要多少张卡。

4. 推理的算力账:2P + 注意力项

推理每生成一个 token 的前向算力约:

每 token FLOPs ≈ 2P + 注意力项(随上下文长度增长)

5. 算术强度与 Roofline:为什么会「算力用不满」

算术强度(Arithmetic Intensity)= FLOPs / 访存字节数。Roofline 模型给出两条墙:

对应到推理两个阶段:

阶段算术强度瓶颈Tensor Core 利用率
Prefill高(大 batch × 长序列的矩阵乘)算力墙高,MFU 可观
Decode极低(每 token 只做 1×d 小矩阵,却要读整个 KV Cache)带宽墙极低,算力大量空转

所以:大 batch 能救 Decode 的 MFU(把多个请求的 token 拼成大矩阵),但会拉高延迟——这是推理引擎调度的核心权衡。

三者闭环

四、三者闭环:一张图记住

Tensor Core(硬件)  →  提供 TFLOPS(度量)
        ↑                       ↓
   为 GEMM 而生  ←——  Transformer / Self-Attention(需求)
                       90% 算力是 GEMM
落地要点

五、落地设计要点(八条)

  1. 对齐口径再比算力:比较 GPU 必须先统一「精度 + 稠密/稀疏 + 单卡/整机」,否则数字毫无意义
  2. 算 TFLOPS 要乘 MFU:训练按 40%~50% 估,推理 Prefill 高、Decode 极低,分阶段算
  3. 背下 C ≈ 6PD:5 个数(P、D、N、F、MFU)就能估训练时间与卡数,容量规划先算账
  4. 训练看算力 + 互联:TP 需要 NVLink 支撑,纯算力高但互联弱的卡(如 H800)训练效率会打折
  5. 推理看显存 + 带宽:Decode 是访存瓶颈,大显存 + 高带宽(如 H20 路线)比高算力更实用
  6. 长上下文单独算账:注意力 O(n²),超过 32K 后算力与显存成本非线性上升,需评估稀疏/CP 方案
  7. 精度换吞吐要有依据:FP8/FP4 能翻倍吞吐,但必须验证精度损失(尤其微调、对齐阶段)
  8. 大 batch 提 MFU 但抬延迟:推理服务要在吞吐与首 token/单 token 延迟之间找平衡点
总结

六、写在最后

大模型算力的讨论常常止步于「这张卡多少 TFLOPS」,但真正决定成本的是三段链路是否对齐:

把 C ≈ 6PD 和 T = 6PD / (N × F × MFU) 这两个公式记住,再配合 Roofline 判断瓶颈在算力还是带宽,你就能在选卡、报价、扩容时,把「感觉很快」变成「算得出多快」。

关于向量云:大模型落地,把基础设施的复杂性留给我们

算力选型、集群调优、推理成本控制,都是持续的基础设施工程。向量云(南京)科技有限公司依托字节跳动火山方舟官方授权,专注大模型应用落地:

向量云能力说明
官方授权接入火山方舟官方 API 与官方 Key 直连
低折扣 Token专属折扣价,用量越大越划算
独享接入点独立接入点,缓存与配额不被公共池挤占
缓存隔离降本上下文缓存红利稳定落袋
计费灵活按量计费、即用即扣、注册充值 10 元起
协议兼容OpenAI 兼容协议,业务代码几乎零改动

接入方式:注册后获取官方 API Key,把 base_url 指向向量云接入点即可直接调用火山方舟官方模型。

获取 API Key:https://ark.tokenrize.cn/ · 火山方舟官方 API 与 Key 直连,注册即用

一句话总结:Tensor Core 提供算力、TFLOPS 标注算力、Transformer 消费算力——用 C ≈ 6PD 与 T = 6PD/(N×F×MFU) 把三者对上账,选卡与扩容就成了算术题。

关于向量云
向量云(南京)科技有限公司

面向大模型应用落地的技术服务型企业,依托字节跳动火山方舟能力,为合作方提供低折扣模型 Token、可独立部署的运营支撑平台及全链路运营支持。

火山方舟官方授权 官方 API Key 独享接入点 缓存隔离降本 低折扣 Token 即用即扣 · 不设账期

常见问题(FAQ)

火山方舟官方 API 与官方 Key 直连 · 向量云 · 大模型算力与硬件

Q1. Tensor Core 和 CUDA Core 有什么区别?

A. CUDA Core 是标量计算单元,一个线程一次算一个乘加(SIMT 模型);Tensor Core 是矩阵专用单元,一个 warp 协作一次完成一小块矩阵乘加(MMA 指令),每周期可做 64 次以上 FMA,吞吐高出一个数量级。Transformer 的算力 90% 以上是矩阵乘,所以 Tensor Core 是它的主力引擎;逐元素运算(激活、LayerNorm)仍在 CUDA Core 上跑。

Q2. 为什么同一种 GPU 会标出好几个 TFLOPS?

A. 三个口径陷阱:① 稠密 vs 稀疏——开启 2:4 结构稀疏理论上可翻倍(如 A100 312 → 624 TFLOPS);② 精度不同——FP32 < TF32 < BF16/FP16 < FP8 < FP4,精度越低算力越高;③ 单卡 vs 整机——GB200 是 2×B200 的超级芯片,宣传数字常为整机口径。比较算力前必须先对齐这三项。

Q3. 训练一个大模型需要多少算力?怎么估算?

A. 用业界经验公式 C ≈ 6PD(P 为参数量,D 为训练 token 数):前向约 2P,反向约 4P,合计 6P 再乘 token 数。例如 7B 模型训 1T tokens 约需 4.2×10²² FLOPs。再配合训练时间公式 T = 6PD / (N × F_peak × MFU),就能估算需要的卡数与耗时。

Q4. MFU 是什么?一般能到多少?

A. MFU(Model FLOPs Utilization)是模型实际达到的算力与硬件峰值算力之比。训练场景下 MFU 达到 40%~50% 已属优秀;推理 Prefill 阶段较高(大矩阵乘),Decode 阶段极低(单 token 小矩阵,纯访存受限)。做容量规划时必须乘 MFU,否则会严重高估算力。

Q5. 为什么推理的 Decode 阶段算力利用率很低?

A. 因为算术强度低。Decode 每生成一个 token 只做 1×d 的小矩阵运算,却要把整个 KV Cache 从显存读一遍,很快撞上「带宽墙」(Roofline 模型),Tensor Core 大量空转在等数据。提升手段是增大 batch(拼成大矩阵)或压缩 KV Cache(GQA/MLA、量化)。

Q6. 为什么 Self-Attention 的算力随序列长度平方增长?

A. 注意力要先算 QKᵀ 得到一个 n×n 的相似度矩阵(n 为序列长度),再与 V 相乘,两项各约 2n²d 次运算,合计约 4n²d。矩阵规模随 n 平方增长,所以长上下文的算力与显存成本会非线性上升,这也是稀疏注意力、CP 并行等方案的根本动机。

Q7. 选 GPU 时只看 TFLOPS 够吗?

A. 不够,同等重要的还有三项:显存容量(决定能放多大模型与 KV Cache)、显存带宽(Decode 阶段的真实瓶颈)、互联带宽(多卡通信效率,如 H800 与 H100 算力相同但互联受限)。典型反例是 H20:算力仅 148 TFLOPS,但显存与带宽出色,是面向大显存推理的卡,不适合大规模训练。