FLOPS, Floating Point Operations Per Second

FLOPS = Floating Point Operations Per Second
GPU 每秒可以做多少次浮點數運算(加減乘除)

1 FLOP = 一次浮點數計算(例如:3.14 × 2.71)
FLOPS  = 每秒能做幾個這樣的計算

深度學習的核心是大量矩陣乘法 → 全部是浮點數運算
→ FLOPS 就是衡量 GPU 算力的主要指標


常見單位

單位 全名 量級
GFLOPS GigaFLOPS 每秒 10⁹ 次
TFLOPS TeraFLOPS 每秒 10¹² 次(現代 AI GPU 的標準單位)
PFLOPS PetaFLOPS 每秒 10¹⁵ 次

訓練 GPT-3(1750億參數)需要數百 PFLOPS 的計算量
參考:FLOPS Performance of NVIDIA H100 GPU — Jarvis Labs


為什麼要看 FLOPS?

FLOPS 提供了一個跟硬體無關的方式來衡量模型的計算需求:

模型大小 × 訓練 token 數
        ↓
所需 FLOPs(複數,代表總運算量)
        ↓
換算成需要多少 GPU × 多少時間

注意區分:


注意事項一:Dense vs Sparse FLOPS

看規格表時,同一顆 GPU 可能會列出兩種數字:

類型 意思
Dense FLOPS 所有數值都參與計算(真實情境)
Sparse FLOPS 有些值是 0 可以跳過,理論上快 2×

NVIDIA Ampere 架構(A100)引入 2:4 Structured Sparsity
每 4 個值中有 2 個為 0 → Sparse Tensor Core 跳過這些計算
→ 理論吞吐量翻倍,但需要模型事先做 sparsity 訓練才有效

廣告數字常用 Sparse FLOPS,實際訓練通常跑 Dense

參考:Accelerating Inference with Sparsity — NVIDIA Developer Blog


注意事項二:精度(Precision)越低,FLOPS 越高

浮點數格式越小 → 每個數值佔的 bit 越少 → 同樣硬體一次能處理更多

精度 位元數 特性
FP32 32 bit 訓練基準,精度最高
BF16 16 bit 指數範圍同 FP32,訓練友好
FP16 16 bit 精度高但數值範圍較小
FP8 8 bit 推論加速,吞吐量最高

H100 實際算力數字:

→ FP8 大約是 BF16 的 2 倍吞吐量

參考:FP16, BF16, FP8 Mixed Precision Guide — RunPod


比較 GPU 時的原則

一定要在相同 precision 下比較

✅ H100 FP16 vs A100 FP16
✅ H100 BF16 vs A100 BF16

❌ H100 FP8 vs A100 FP16  ← 不公平,精度不同
❌ Sparse vs Dense         ← 不公平,計算方式不同

A100 沒有 FP8 Tensor Core,H100 才有
→ 兩者比 FP8 根本是比不同東西


實際案例:H100 vs A100

規格 A100 80GB H100 80GB
FP16 Dense 312 TFLOPS 495 TFLOPS
BF16 Dense 312 TFLOPS 495 TFLOPS
FP8 Dense ❌ 不支援 989 TFLOPS
FP16 Sparse 624 TFLOPS 989 TFLOPS
記憶體頻寬 2 TB/s 3.35 TB/s

H100 的 FP16 Dense 約是 A100 的 1.6×

參考:NVIDIA H100 官方規格


FLOPS = GPU 每秒浮點運算次數
              ↓
看規格時要注意:
  1. Dense 還是 Sparse?(廣告常用 Sparse)
  2. 哪種精度?(FP8 > FP16 ≈ BF16 >> FP32)
              ↓
比較 GPU 算力
  → 同 precision、同 Dense/Sparse 才公平
Powered by Forestry.md