芯片怎么算、算力怎么标、模型要用多少算力——把三个问题一次串成一本「算力账本」
聊大模型算力,绕不开三个词:Tensor Core(芯片里真正的算力来源)、TFLOPS(算力的度量单位)、Transformer / Self-Attention(吃掉算力的那个模型结构)。
三者的关系一句话就能说清:Tensor Core 是为矩阵乘设计的专用电路,Transformer 的算力 90% 以上是矩阵乘,而 TFLOPS 就是把前两者对上账的计量单位。本文按「芯片 → 指标 → 模型 → 账本」的顺序,把这条链路彻底打通。
| 对比项 | CUDA Core | Tensor Core |
|---|---|---|
| 计算粒度 | 标量(一次一个乘加) | 矩阵块(一次一个小矩阵乘加) |
| 编程模型 | SIMT,线程级并行 | MMA 指令(Warp 级协作) |
| 每周期吞吐 | 每核约 1 次 FMA | 每周期 64 次以上 FMA |
| 擅长场景 | 通用逻辑、激活函数、逐元素运算 | 矩阵乘(GEMM) |
关键差别:CUDA Core 是「一个线程算一个数」,Tensor Core 是「一个 warp(32 线程)协作完成一小块矩阵乘法」。所以做 GEMM 时,Tensor Core 的吞吐是 CUDA Core 的数量级差异。
Tensor Core 的核心设计是混合精度:
这样既拿到低精度的速度,又避免误差累积失控。这正是大模型训练能跑起来的前提——纯 FP32 训练慢得无法接受,纯 FP16 又会溢出,混合精度是唯一解。
| 代际 | 架构(年份) | 新增精度 | 里程碑 |
|---|---|---|---|
| 第一代 | Volta(2017,V100) | FP16 | 首次引入 Tensor Core,深度学习训练加速 |
| 第二代 | Turing(2018,RTX 20) | INT8 / INT4 | 面向推理的低精度整数运算 |
| 第三代 | Ampere(2020,A100) | TF32 / BF16,2:4 结构稀疏 | 稀疏跳过零值,吞吐翻倍 |
| 第四代 | Hopper(2022,H100) | FP8 | Transformer 引擎,FP8 训练性能较 FP16 提升约 6 倍 |
| 第五代 | Blackwell(2024,B200/GB200) | FP4 | 面向生成式 AI 的海量计算,单芯片约 2080 亿晶体管 |
三条演进主线非常清晰:
Transformer 的计算构成极其「偏科」:自注意力 + FFN 几乎全是矩阵乘(GEMM),占比 90% 以上。逐元素运算(LayerNorm、激活)只占极小头。
也就是说:Transformer 把算力需求精准地喂给了 Tensor Core 最擅长的那类运算。这不是巧合——GPU 架构演进与 Transformer 的兴起几乎同步发生(Volta 2017 = Transformer 论文同年),随后每一代都在为 Transformer 加料(Hopper 直接叫 Transformer 引擎)。
一次矩阵乘 [m,k] × [k,n] 的浮点运算量约为:
FLOPs ≈ 2 × m × k × n
每个输出元素要 k 次乘法 + k 次加法 ≈ 2k 次运算,共 m×n 个输出。「2」这个系数(乘+加)在所有估算公式里都会反复出现。
FLOPS = 每秒浮点运算次数;TFLOPS = 万亿次/秒(10¹²);PFLOPS = 千万亿次/秒(10¹⁵)。
单卡峰值 TFLOPS ≈ SM 数 × 每 SM 的 Tensor Core 数量 × 每周期 FMA 数 × 2 × 主频
厂商标注的「算力」就是按这个上限算出来的理论峰值。
看规格书时,同样一张卡会出现好几个数字,务必看清口径:
| 陷阱 | 说明 |
|---|---|
| 稠密 vs 稀疏 | 开启 2:4 结构稀疏后理论上可翻倍(如 A100 312 → 624 TFLOPS)。稀疏需模型权重满足 2:4 零值模式,不是白给的 |
| 精度不同算力不同 | FP32 < TF32 < BF16/FP16 < FP8 < FP4,越低的精度算力越高。比算力必须先对齐精度 |
| 整机 vs 单卡 | GB200 是「2×B200 + Grace CPU」的超级芯片,宣传数字常是整机口径,别和单卡混着比 |
| GPU | 架构 | BF16/FP16 | FP8 | 显存 | 显存带宽 | 互联 |
|---|---|---|---|---|---|---|
| V100 | Volta | 125 TFLOPS | — | 32GB HBM2 | 0.9 TB/s | NVLink 300 GB/s |
| A100 | Ampere | 312 TFLOPS | — | 80GB HBM2e | ~2.0 TB/s | NVLink 600 GB/s |
| H100 | Hopper | 989 TFLOPS | 1979 TFLOPS | 80GB HBM3 | 3.35 TB/s | NVLink 900 GB/s |
| H800 | Hopper | 989 TFLOPS | 1979 TFLOPS | 80GB HBM3 | 3.35 TB/s | NVLink 400 GB/s(互联受限) |
| H20 | Hopper | 148 TFLOPS | 296 TFLOPS | 96GB HBM3 | 4.0 TB/s | 大幅受限 |
| B200 | Blackwell | ~2.25 PFLOPS | ~4.5 PFLOPS | 192GB HBM3e | 8 TB/s | NVLink 5(1.8 TB/s) |
| GB200 | Blackwell | 2×B200 + Grace | — | 384GB HBM3e | 16 TB/s | NVLink-C2C |
数据为厂商公开规格的常见引用值(稠密、不含稀疏);不同来源口径(稀疏/整机)差异较大,选型请以官方 datasheet 为准。
从这张表能读出一个关键事实:H800 与 H100 算力完全相同,差别只在互联带宽——这直接说明「算力不是全部」。
H20 就是典型例子:FP16 只有 148 TFLOPS(不到 A100 一半),但显存 96GB、带宽 4.0 TB/s 都很能打——它是为「大显存 + 高带宽的推理」设计的,不是为训练设计的。
MFU(Model FLOPs Utilization)= 模型实际达到的算力 / 硬件峰值算力。
所以「买卡看 TFLOPS,实际算力要乘 MFU」——这一步不做,容量规划必然翻车。
注意力公式:
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²)),这是长上下文成本爆炸的根源(对应《注意力机制》一文的两笔账)。
工业界最常用的估算公式:
训练总 FLOPs C ≈ 6 × P × D
算例:7B 模型训练 1T tokens:
C ≈ 6 × 7×10⁹ × 1×10¹² = 4.2 × 10²² FLOPs
有了峰值算力、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 五个数一填,时间就出来了——反过来也能估算需要多少张卡。
推理每生成一个 token 的前向算力约:
每 token FLOPs ≈ 2P + 注意力项(随上下文长度增长)
算术强度(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
大模型算力的讨论常常止步于「这张卡多少 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 直连 · 向量云 · 大模型算力与硬件
A. CUDA Core 是标量计算单元,一个线程一次算一个乘加(SIMT 模型);Tensor Core 是矩阵专用单元,一个 warp 协作一次完成一小块矩阵乘加(MMA 指令),每周期可做 64 次以上 FMA,吞吐高出一个数量级。Transformer 的算力 90% 以上是矩阵乘,所以 Tensor Core 是它的主力引擎;逐元素运算(激活、LayerNorm)仍在 CUDA Core 上跑。
A. 三个口径陷阱:① 稠密 vs 稀疏——开启 2:4 结构稀疏理论上可翻倍(如 A100 312 → 624 TFLOPS);② 精度不同——FP32 < TF32 < BF16/FP16 < FP8 < FP4,精度越低算力越高;③ 单卡 vs 整机——GB200 是 2×B200 的超级芯片,宣传数字常为整机口径。比较算力前必须先对齐这三项。
A. 用业界经验公式 C ≈ 6PD(P 为参数量,D 为训练 token 数):前向约 2P,反向约 4P,合计 6P 再乘 token 数。例如 7B 模型训 1T tokens 约需 4.2×10²² FLOPs。再配合训练时间公式 T = 6PD / (N × F_peak × MFU),就能估算需要的卡数与耗时。
A. MFU(Model FLOPs Utilization)是模型实际达到的算力与硬件峰值算力之比。训练场景下 MFU 达到 40%~50% 已属优秀;推理 Prefill 阶段较高(大矩阵乘),Decode 阶段极低(单 token 小矩阵,纯访存受限)。做容量规划时必须乘 MFU,否则会严重高估算力。
A. 因为算术强度低。Decode 每生成一个 token 只做 1×d 的小矩阵运算,却要把整个 KV Cache 从显存读一遍,很快撞上「带宽墙」(Roofline 模型),Tensor Core 大量空转在等数据。提升手段是增大 batch(拼成大矩阵)或压缩 KV Cache(GQA/MLA、量化)。
A. 注意力要先算 QKᵀ 得到一个 n×n 的相似度矩阵(n 为序列长度),再与 V 相乘,两项各约 2n²d 次运算,合计约 4n²d。矩阵规模随 n 平方增长,所以长上下文的算力与显存成本会非线性上升,这也是稀疏注意力、CP 并行等方案的根本动机。
A. 不够,同等重要的还有三项:显存容量(决定能放多大模型与 KV Cache)、显存带宽(Decode 阶段的真实瓶颈)、互联带宽(多卡通信效率,如 H800 与 H100 算力相同但互联受限)。典型反例是 H20:算力仅 148 TFLOPS,但显存与带宽出色,是面向大显存推理的卡,不适合大规模训练。