晶片層 開放閱讀

波前

Wavefront / Wave

概念 ID
wavefront-wave
更新時間
2026-05-29
來源數量
待補

波前(Wavefront / Wave)

3 秒看懂

波前(Wavefront)是 GPU/加速器中一組被硬體捆綁、在同一時鐘週期內執行相同指令的執行緒集合。 NVIDIA 稱之為 Warp(32 執行緒),AMD 稱之為 Wavefront(GCN 時代 64 執行緒,RDNA 可 32 或 64,CDNA 僅 64)。它是一切 GPU 平行計算——包括 AI 訓練與推論——的最小排程粒度。理解 Wavefront,就是理解 GPU 吞吐的”齒輪”如何咬合。

3 分鐘產業解釋

為什麼 Wavefront 對 AI 產業鏈重要?

AI 大型模型訓練的本質是海量矩陣乘法 + 高頻寬訪存,而 GPU 的核心設計哲學是:用成千上萬個小執行緒的並行執行來掩蓋訪存延遲。這些執行緒並不是一個一個獨立排程的——那硬體開銷太大。GPU 的做法是把執行緒打包,以 Wavefront/Warp 為單位統一派發、統一執行、統一切換。

  • 一個 Wavefront 就是一個”執行槽位”:SM(NVIDIA)/ CU(AMD)內的排程器每個週期決定”本週期執行哪個 Wavefront”。
  • Wavefront 數量決定了”隱藏延遲的能力”:當一個 Wavefront 因記憶體訪問而停頓時,排程器可以瞬間切換到另一個就緒的 Wavefront,實現零開銷切換。這就是 latency hiding 的核心機制。
  • Occupancy(佔用率)= 實際駐留 Wavefront 數 / 最大可駐留 Wavefront 數,是 GPU 效能調優的第一指標。

產業含義

  1. 晶片設計:Wavefront 寬度和排程策略直接決定 GPU 架構的吞吐效率,是 NVIDIA vs AMD 架構差異的關鍵維度之一。
  2. AI 架構/編譯器:Triton、XLA、TVM 等編譯器後端需要按 Wavefront/Warp 粒度進行指令排程和記憶體合併(coalescing)最佳化。
  3. 運算元最佳化:CUDA kernel 中的 __shfl_sync、Warp-level reduction 等程式設計範式直接操作 Warp/Wavefront 內的執行緒通訊,是 Flash Attention、LayerNorm 等核心運算元的效能基石。
  4. 國產 GPU 生態:摩爾線程、壁仞、天數智芯等公司的架構設計中,如何定義和實現自己的 Wavefront/Warp 粒度,是衡量其 ISA 成熟度的關鍵標誌。

15 分鐘專家深入

Wavefront 的架構級地位

在現代 GPU 的執行層次中,Wavefront/Warp 處於執行緒 → Wavefront/Warp → Block → Grid 這一對映鏈的核心位置:

Grid (整個 Kernel)
 └─ Block / Thread Block (軟體概念,分配到一個 SM/CU)
      └─ Warp / Wavefront (硬體排程最小單位)
           └─ Thread (單個執行緒,有自己的暫存器狀態)

SIMT 執行模型:同一指令,不同資料

Wavefront 內所有執行緒在每個週期執行同一條指令(Single Instruction, Multiple Thread)。這與純 SIMD 不同——SIMT 允許執行緒有不同的控制流,但 divergent 分支需要序列化執行兩個路徑(通過 active mask 控制),效能代價是分支發散懲罰(branch divergence penalty)

關鍵設計引數對比(已知公開資訊,未充分揭露處已標註):

維度NVIDIA(Warp)AMD GCN/RDNA/CDNAIntel Xe(Sub-Slice)
執行緒粒度32 執行緒(自 Fermi 以來穩定)GCN: 64; RDNA: 支援 wave32/wave64; CDNA: wave64 [AMD 架構白皮書]硬體 SIMD 寬度因代際而異 [未充分揭露統一命名]
排程器Warp Scheduler(每 SM 多個)Wavefront Scheduler(每 CU 一個或多個)Thread Director 相關 [定性]
Warp 內通訊__shfl_sync() 系列ds_bpermute / ds_swizzle類似機制 [定性]
分支處理Active mask 序列化Exec mask 序列化(64-bit)類似機制 [定性]

為什麼 Warp=32 / Wavefront=64?

這不是隨意選擇——它是硬體資源分攤延遲隱藏之間的平衡:

  • 更寬的 Wavefront(如 64):單個排程決策覆蓋更多執行緒,排程器簡單,但分支發散時浪費的執行緒槽位更多。
  • 更窄的 Warp(如 32):分支發散懲罰更小,wave32 模式下暫存器壓力可降低(因為不需要為 64 執行緒分配同一組暫存器 bank),但排程器負擔相對更高。
  • AMD RDNA 引入 wave32 模式,一個核心動機就是圖形渲染中大量存在小三角形(small primitive),wave32 可減少執行緒浪費;AI 計算中矩陣運算通常高度一致,wave64 仍有優勢。
  • NVIDIA 從 Fermi 到 Blackwell 一直維持 Warp=32,說明 32 執行緒在通用計算和 AI 負載中是足夠好的平衡點。

Wavefront 的生命週期

1. Block 被分配到 SM/CU
2. Block 內的執行緒被分組為若干 Wavefront/Warp
3. Wavefront 註冊到排程器的 wavefront pool / warp slot
4. 每週期,排程器從就緒(ready)佇列中選擇一個 Wavefront 發射
5. 若 Wavefront 遇到長延遲操作(如 global memory load),
   標記為 stall,排程器立即切換到其他就緒 Wavefront
6. 資料到達後,該 Wavefront 重新變為 ready
7. 所有指令執行完畢,Wavefront 退出

關鍵瓶頸——暫存器壓力與佔用率

每個 Wavefront 中的每個執行緒都需要獨立的暫存器組。假設一個 SM 有 65536 個 32-bit 暫存器(NVIDIA Ampere 的公開資料),Warp=32 執行緒:

  • 每執行緒使用 32 個暫存器 → 每 Warp 需 32×32 = 1024 個暫存器
  • 最多駐留 65536 / 1024 = 64 個 Warp
  • 每執行緒使用 128 個暫存器 → 每 Warp 需 32×128 = 4096 個暫存器
  • 最多駐留 65536 / 4096 = 16 個 Warp

暫存器用得越多,能同時駐留的 Wavefront 越少,延遲隱藏能力越差。 這就是為什麼 kernel 最佳化中”暫存器 spill”和”佔用率”是永恆的權衡主題。


技術原理

1. SIMT 執行引擎的微架構

以 NVIDIA SM(Streaming Multiprocessor)為例,展示 Warp 在硬體中的執行路徑:

┌─────────────────────────────────────────────────────┐
│                    SM (Streaming Multiprocessor)      │
│                                                       │
│  ┌──────────────┐   ┌──────────────┐                 │
│  │ Warp Scheduler│   │ Warp Scheduler│  (Ampere: 4個) │
│  │   + Dispatch  │   │   + Dispatch  │                 │
│  └──────┬───────┘   └──────┬───────┘                 │
│         │                   │                          │
│         ▼                   ▼                          │
│  ┌──────────────────────────────────────┐             │
│  │         執行單元 (Execution Units)     │             │
│  │  ┌─────┐ ┌─────┐ ┌─────┐ ┌────────┐ │             │
│  │  │ FP32│ │ FP32│ │ INT │ │ SFU/LDX│ │             │
│  │  │ (16)│ │ (16)│ │ (16)│ │        │ │             │
│  │  └─────┘ └─────┘ └─────┘ └────────┘ │             │
│  │  每週期: 4個 Warp 可併發發射        │             │
│  └──────────────────────────────────────┘             │
│                                                       │
│  ┌──────────────────────────────────────┐             │
│  │  Register File (64K × 32-bit 典型值)  │             │
│  │  → 所有活躍 Warp 共享物理暫存器池       │             │
│  └──────────────────────────────────────┘             │
│                                                       │
│  ┌──────────┐  ┌──────────┐                          │
│  │ Shared Mem│  │ L1 Cache │                          │
│  │ (可配置)  │  │          │                          │
│  └──────────┘  └──────────┘                          │
└─────────────────────────────────────────────────────┘

關鍵機制說明

  • 多發射(Multi-Issue):Ampere/Hopper 的 SM 中,一個 Warp 的 32 執行緒被拆成兩個 16 執行緒的 sub-warp(或稱 half-warp),分別在兩組執行單元上併發。這是”32”這個數字與硬體執行寬度匹配的結果。
  • 運算元收集器(Operand Collector):從暫存器檔案中為即將發射的 Warp 收集源運算元的硬體模組,需處理 bank conflict。
  • Scoreboard:追蹤每個 Warp 中每條指令的依賴關係,決定哪些 Warp 處於 ready 狀態。

2. Wavefront 內的執行緒通訊

Wavefront/Warp 內的執行緒可以不經共享記憶體,直接通過 shuffle 指令交換資料:

// NVIDIA CUDA: Warp 內 shuffle
__shfl_sync(0xFFFFFFFF, val, src_lane);  // 從指定 lane 讀取值
__shfl_down_sync(0xFFFFFFFF, val, delta); // 從 lane_id+delta 讀取
__shfl_xor_sync(0xFFFFFFFF, val, mask);   // Butterfly 模式
; AMD GCN: ds_bpermute
v_bpermute_b32 vdst, vsrc, vaddr  ; 按 vaddr 指定的 lane 索引讀取

應用場景

  • Warp-level reduction:LayerNorm、Softmax 中的求和/求最大值,一次 shuffle 即可完成 Warp 內 32/64 執行緒的歸約,無需 Shared Memory。
  • Flash Attention:核心的 online softmax 更新中,Warp 間通過 Shared Memory + __syncthreads() 通訊,Warp 內通過 shuffle 通訊。
  • Warp Matrix Multiply Accumulate (WMAA / WMMA):Ampere 的 mma.sync 指令讓整個 Warp 協作完成一個小矩陣乘(如 16×16×16),執行緒間通過暫存器檔案的隱式版面配置共享資料。

3. Branch Divergence 機制詳解

程式碼:
  if (threadIdx.x % 2 == 0)
      A();  // 偶數執行緒
  else
      B();  // 奇數執行緒

執行時間線 (Warp=8 為例):
  Cycle 1: [exec_mask = 10101010] 執行 A() — 奇數執行緒空轉
  Cycle 2: [exec_mask = 01010101] 執行 B() — 偶數執行緒空轉
  → 總耗時 = 2×,即"分支發散懲罰"

為什麼對 AI 計算影響大?

  • 大規模矩陣乘(GEMM)中幾乎沒有分支發散,Wavefront 效率極高(接近 100%)。
  • MoE 路由動態稀疏計算TopK 選擇 等操作會引入顯著的分支發散,降低 Wavefront 利用率。這也是硬體稀疏加速(如 NVIDIA 的結構化稀疏 2:4)試圖繞開的問題。

4. 記憶體合併(Memory Coalescing)與 Wavefront

Wavefront/Warp 內的 32/64 個執行緒如果訪問的全域性記憶體地址連續且對齊,硬體可以將它們合併為極少的記憶體事務:

理想情況(合併度=100%):
  執行緒 0 → addr[0], 執行緒 1 → addr[1], ..., 執行緒 31 → addr[31]
  → 合併為 1 次 128-byte 事務

最差情況(合併度=1/32):
  執行緒 0 → addr[0], 執行緒 1 → addr[1024], 執行緒 2 → addr[2048]...
  → 32 次獨立事務,頻寬利用率暴跌

對 AI 的意義:Tensor Core 的輸入版面配置(如 HMMA 的 fragment layout)就是為了讓 Warp 內執行緒的暫存器訪問模式與矩陣的記憶體版面配置匹配,最大化合並效率。


技術演進史

時間事件Wavefront/Warp 維度的變化
2006NVIDIA G80(Tesla 初代)引入 Warp=32 概念(前身是 NV4x 的 8-wide SIMD),確立 SIMT 模型
2007AMD/ATI R600(TeraScale)5-wide VLIW,每執行緒組 16 個執行緒並行,非現代 Wavefront 概念
2011AMD GCN(Southern Islands)Wavefront=64 自 R600 時代延續,GCN 改進了排程和執行方式:4 個週期×16-wide SIMD 執行一個 Wavefront;同時釋出 HSA 異構計算規範
2012NVIDIA Kepler(GK110)SMX 擁有 4 個 Warp Scheduler;支援 Warp Shuffle(__shfl),大幅減少 Shared Memory 使用
2014NVIDIA Maxwell進一步最佳化排程效率,L1/Shared Memory 重新劃分
2016NVIDIA Pascal (GP100)引入 FP16 半精度支援,Warp 級半精度吞吐翻倍;NVLink 提升多 GPU 通訊
2017NVIDIA Volta (GV100)獨立執行緒排程(Independent Thread Scheduling):每個執行緒有獨立的 PC 和棧,但 Warp 仍然是執行粒度;引入 Tensor Core v1(Warp 協作完成 4×4×4 矩陣乘)
2020AMD RDNA(RX 5000 系列)引入 wave32 模式,與 wave64 並存;CU 結構重新設計為 Work Group Processor (WGP)
2020NVIDIA Ampere (A100)Tensor Core v3,mma.sync 指令支援更大矩陣 tile(如 16×16×16);結構化稀疏 2:4 對 Warp 級資料流提出新要求
2022AMD CDNA 2 (MI250X)Wavefront=64 為預設,針對 HPC/AI 最佳化;引入 Matrix Core(對標 Tensor Core)
2022NVIDIA Hopper (H100)Warp Specialization:同一個 Block 內不同 Warp 可以執行不同角色(如 producer warp 負責資料搬運,consumer warp 負責計算),這是 TMA(Tensor Memory Accelerator)的軟體模型基礎;Tensor Core v4(FP8 支援)
2023AMD CDNA 3 (MI300X)Wavefront=64 繼續;Matrix Core 擴充套件支援 FP8/INT8;MI300X 為純 GPU 加速卡,不支援 APU 模式(統一記憶體架構和 APU 模式為 MI300A 特性;MI300X 可通過 CXL 等支援統一記憶體訪問機制)
2024NVIDIA Blackwell (B100/B200)Tensor Core 進一步擴充套件到 FP4/FP6;Warp 級協作機制未見公開架構級變化 [基於已公開資訊]
2024Intel Gaudi 3非傳統 GPU,使用 VPU(Vector Processing Unit)+ TPC(Tensor Processing Core)架構,排程粒度概念不同於 Warp/Wavefront [定性]

趨勢總結

  • Wavefront/Warp 寬度穩定:NVIDIA 堅守 32 超過 15 年,AMD 在 AI/HPC 場景維持 64、圖形場景增加 wave32 靈活性。
  • 執行語義越來越”粗”:從逐條標量指令,到 Warp-level 矩陣指令(mma.sync),再到 Block-level 非同步操作(TMA + wgmma),排程粒度逐級上移。
  • Warp Specialization 成趨勢:Hopper 的 producer/consumer warp 模型讓一個 Block 內不同 Warp 承擔不同角色,打破了”所有 Warp 做同一件事”的傳統假設。

技術路線對比(量化表)

指標NVIDIA Warp (Ampere A100)NVIDIA Warp (Hopper H100)AMD Wavefront (CDNA2 MI250X)AMD Wavefront (CDNA3 MI300X)
執行緒粒度32326464
每 SM/CU 最大駐留 Warp/Wave 數64 warps [NVIDIA 白皮書]64+(支援更多 concurrent warp 與 TMA 非同步)[NVIDIA 白皮書]每 CU 最多 40 wavefronts [AMD CDNA2 ISA]40 wavefronts per CU [AMD CDNA3 公開資料,待確認]
每 SM/CU 暫存器檔案65536 × 32-bit65536 × 32-bit [NVIDIA 白皮書]每 CU: 65536 × 32-bit [AMD 架構手冊]65536 × 32-bit [供應鏈估算]
Tensor/Matrix Core Warp 協作mma.sync m16n8k16(FP16)mma.sync + wgmma(Block 級)MFMA 32×32×8(FP16)MFMA 擴充套件至 FP8 [AMD 公開資料]
Warp Shuffle 頻寬32 執行緒 × 4B = 128B/週期同上64 執行緒 × 4B = 256B/週期 [AMD ISA]同 CDNA2 [待確認]
Warp Specialization不支援(Block 內 Warp 同質)支援(producer/consumer warp)不支援(截至目前公開資訊)不支援 [截至目前公開資訊]
結構化稀疏2:4(Warp 級後設資料)2:4不適用不適用

注意:上表部分資料來源於廠商公開白皮書和 ISA 手冊,部分為行業通用認知,具體數字可能因型號配置(如 A100 40GB vs 80GB 的 SM 數差異)而不同。所有數值請以廠商官方文件為準。


上下游

上游(影響 Wavefront 設計的因素)

┌─────────────────────────────────────────────────────────────┐
│  製程工藝 (5nm/4nm/3nm)                                      │
│  → 決定 SM/CU 內可整合多少執行單元和暫存器                        │
├─────────────────────────────────────────────────────────────┤
│  記憶體子系統 (HBM3/HBM3E, GDDR7)                              │
│  → 決定 Wavefront 訪存延遲,影響需多少 Wave 做 latency hiding   │
├─────────────────────────────────────────────────────────────┤
│  編譯器 (NVCC, ROCm/hipcc, Triton, XLA)                     │
│  → 決定 Warp/Wave 的指令排程和暫存器分配                        │
├─────────────────────────────────────────────────────────────┤
│  AI 架構 (PyTorch, JAX, TensorFlow)                          │
│  → 運算元實現的 Warp 級最佳化程度                                    │
└─────────────────────────────────────────────────────────────┘

下游(Wavefront 效率影響的層面)

┌─────────────────────────────────────────────────────────────┐
│  Kernel 效能 (單運算元吞吐)                                      │
│  → 佔用率、分支發散、記憶體合併直接影響                              │
├─────────────────────────────────────────────────────────────┤
│  大型模型訓練吞吐 (Tokens/sec)                                   │
│  → 所有 GEMM/Attention kernel 的 Wavefront 利用率疊加           │
├─────────────────────────────────────────────────────────────┤
│  推論延遲 (Time-to-First-Token, Inter-Token Latency)          │
│  → batch size 小時佔用率低,Wavefront 利用率是關鍵瓶頸           │
├─────────────────────────────────────────────────────────────┤
│  多 GPU 並行效率                                              │
│  → Tensor/Pipeline Parallelism 中每個 GPU 內部的 Wavefront 效率│
│    決定了通訊/計算重疊(overlap)的效果                            │
└─────────────────────────────────────────────────────────────┘

關鍵指標

指標定義典型優秀值對 AI 的意義
Occupancy(佔用率)活躍 Warp 數 / 最大 Warp 數≥50%(視 kernel 而定)太低→延遲隱藏不足→SM 利用率低
Warp Execution Efficiency非 divergent 週期 / 總週期≥90%(GEMM kernel)分支發散直接降低
Memory Coalescing Rate有效位元組 / 事務位元組≥80%決定視訊記憶體頻寬實際利用率
Warp Stall Reasons各類停頓原因佔比應以 MIO/Long Scoreboard 為主(說明在等計算或視訊記憶體)ncu/rocprof 核心診斷指標
Register Per Thread每執行緒暫存器使用數32–128(視 kernel)決定最大駐留 Warp 數
Shared Memory Per Block每 Block 共享記憶體決定 Block 級 Wavefront 可用的快速通訊資源影響 Wave 間同步開銷
Tensor Core UtilizationTensor Core 活躍週期佔比≥60%(成熟 kernel)Wavefront 級矩陣指令的有效發射率

供需與市場資料

Wavefront/Warp 不是一個獨立的產品市場,而是 GPU 架構的內在機制。其商業影響通過以下鏈條傳導:

需求側

  • AI 訓練晶片:全球 AI 訓練 GPU 市場 2024 年預估超 $80B [綜合多家行業報告,口徑差異較大]。每顆 GPU 的核心競爭力之一是其 Wavefront/Warp 排程效率對 kernel 吞吐的貢獻。
  • 推論晶片:推論場景 batch size 小,佔用率普遍較低,Wavefront 利用率是推論晶片需要特別最佳化的維度。
  • 編譯器/工具鏈生態:Triton、XLA、TVM 等中間表示層需要深度理解目標硬體的 Wavefront/Warp 語義,這直接決定了這些工具的實際效能上限。

供給側

  • NVIDIA:CUDA 生態對 Warp 語義的抽象和最佳化已積累 15+ 年,ncu(Nsight Compute)提供完整的 Warp 級分析指標。
  • AMD:ROCm 生態正在快速補齊,rocprof + OmniPerf 提供 Wavefront 級分析,但工具鏈成熟度仍有差距(截至 2024 年行業共識)。
  • 國產 GPU:多數國產 AI 晶片廠商借鑑 NVIDIA 的 Warp=32 模型,但 ISA 細節(如 shuffle 指令、Tensor Core/Wave 協作模式)各有差異,生態相容性是核心挑戰。

代表公司與資本對映

公司與 Wavefront 的關聯資本標的
NVIDIAWarp=32 SIMT 模型的定義者;從 Fermi 到 Blackwell 持續迭代NVDA
AMDWavefront=64(GCN/CDNA)/ wave32+64(RDNA)雙模式;MI300X 為 HBM3 APUs 旗艦AMD
IntelXe 架構的執行緒排程粒度設計;Gaudi 3 的 TPC/VPU 架構對 Warp 概念的替代方案INTC
摩爾線程MUSA 架構借鑑 Warp 模型,具體粒度未完全公開 [未充分揭露]一級市場
壁仞科技BR100 採用自研 SIMT 架構,Wave/Warp 粒度設計是 ISA 核心一級市場
天數智芯天垓系列 GPU,SIMT 執行模型 [定性]一級市場
寒武紀MLU 架構的並行排程粒度不同於傳統 GPU Wavefront,但核心思想類似688256.SH
Triton(OpenAI)編譯器後端需要為每個目標硬體生成 Wavefront/Warp 級最佳化程式碼未上市
TVM / Apache自動調優(AutoTVM)的搜尋空間包含 Wavefront/Warp 相關引數開源

投資邏輯

直接邏輯

  1. 架構差異化壁壘:Wavefront/Warp 排程器是 GPU 微架構中最難被逆向工程的部分之一。它不是簡單的寬度數字,而是包括排程策略、依賴追蹤、暫存器分配、分支處理的完整狀態機。這是 NVIDIA 和 AMD 的核心 IP 護城河。
  2. 編譯器生態繫結:CUDA 的 __shfl_syncmma.sync 等 Warp 級 API 被數十萬個 kernel 使用,遷移成本極高。這構成了 NVIDIA 的軟體 lock-in。
  3. 國產替代維度:評估國產 GPU 不僅要看 Tensor Core 的 peak TFLOPS,更要看其 Warp 排程器的實際效率(occupancy 上限、stall pattern、shuffle 延遲)。這些是紙面引數看不到、但實測效能差異巨大的因素。

間接邏輯

  1. **HBM 頻寬與
source: 公開揭露與公開資料整理 本頁僅用於產業鏈學習、資訊檢索和研究輔助;不構成投資建議,不預測漲跌,不提供買賣、部位或目標價建議。
完整概念頁 複盤 13 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型