# 策展 · X (Twitter) 🔥🔥🔥

> 作者：Qwen (@Alibaba_Qwen) · 平台：X (Twitter) · 日期：2026-04-30

> 原始來源：https://x.com/Alibaba_Qwen/status/2049462666734026923

## 中文摘要

FlashQLA發布高性能線性注意力核心，提升GDN在邊緣Agentic AI效能2-3倍。

阿里雲Qwen團隊推出FlashQLA，一款基於TileLang的高性能線性注意力核心庫，針對Gated Delta Network (GDN) Chunked Prefill的前向與後向傳播進行運算子融合與優化，在NVIDIA Hopper架構上實現2-3×前向加速與2×後向加速，尤其適合預訓練與邊緣裝置上的Agentic AI推論。

**核心亮點**

FlashQLA透過三項關鍵創新解決GDN效率瓶頸：
- **閘門驅動的自動單卡情境平行**：利用GDN閘門的指數衰減特性，在張量平行(TP)、長序列與小頭數設定下自動啟用單卡CP，提升GPU SM利用率。
- **硬體友善的代數重整**：對GDN Chunked Prefill的前向與後向流程進行重整，有效降低Tensor Core、CUDA Core與SFU開銷，同時不犧牲數值精度。
- **TileLang融合warp專屬核心**：避免逐步分解成獨立核心或全融合單一核心，而是考量CP與後向需求，使用TileLang建構關鍵融合核心，並手動實作warpgroup專屬化，疊加資料移動、Tensor Core運算與CUDA Core運算。

**GDN Chunked Prefill的效率問題**

GDN作為Qwen3-Next系列至Qwen3.5/Qwen3.6的核心注意力層，在模型規模達397A17B、122A10B、35B、27B，且情境視窗超過256K時，其區塊開銷在端到端訓練與推論中已不可忽視。以chunk索引i為例，前向計算流程忽略閘門預處理與CP後，包括多步驟，如反覆讀取K、V資料，並將中間變數W、U、S寫入HBM再讀取，造成嚴重記憶體存取開銷。

此外，SSM狀態的遞迴特性導致chunk_gated_delta_rule_fwd_kernel僅能同時啟動batch_size * num_heads個執行緒區塊，在小模型、小批次或TP情境下GPU利用率低下。完全融合核心雖能解決記憶體問題，但在大批次下優異，卻在邊緣推論(batch_size=1的小模型)或TP長序列Agentic輸入（如程式撰寫Agent）時，加速效果有限，因無法啟動足夠批次。

**平衡解決方案：雙核心融合與自動CP**

FlashQLA將GDN Chunked Prefill前向計算拆分成兩個融合核心，中間插入CP相關預處理步驟，避免全融合的GPU利用率缺陷。設計簡單數學模型自動決定平行度：序列chunk數為N，每CP rank的chunk數為L，步驟2.1與3的執行時間正比於L，步驟2.2正比於N/L，因此選L=λN最小化總時間，其中λ由batch_size、num_heads等超參數組成。

進一步透過閘門衰減優化：閘門αi ∈ (0,1)使每個Si對後續狀態影響指數衰減，具滑動視窗特性。對於足夠長的視窗W，從Si-W=0啟動計算即可精準得Si（warmup過程），無需從S0開始。實測資料顯示，60–80%的線性注意力頭上αi非恆為1，6–8個chunk warmup即令Si誤差低於雜訊底線。

**後向傳播挑戰與warp專屬管線**

後向傳播是最艱難部分，FlashQLA在極緊的片上記憶體限制下建構16階段warp專屬管線，實現核心層級2×以上加速。以TileLang實作warpgroup專屬模式：單一SM內一生產者warpgroup與三消費者warpgroup，透過共享記憶體交換資料，並以mbarriers同步。

**效能基準測試**

在Qwen3.5/Qwen3.6家族頭配置hv ∈ {64, 48, 32, 24, 16, 8}（對應TP1至TP8）上，對比FLA Triton（0.5.0）、FlashInfer（0.6.9）、TileLang（0.1.8），前向基準測單核心延遲（不同模型、TP與批次長度），後向基準測單更新步驟中批次總token數與延遲關係。加速效果在TP設定、小模型與長情境負載最顯著，詳細見benchmark_results_H200.txt。

**使用方式與需求**

FlashQLA提供高階API匹配FLA簽名，以及低階前/後向入口點。需求：SM90以上、CUDA 12.8+、PyTorch 2.8+。

安裝：
```
git clone https://github.com/QwenLM/FlashQLA.git
cd FlashQLA && pip install -v .
```

高階API範例：
```python
import torch
from flash_qla import chunk_gated_delta_rule

o, final_state = chunk_gated_delta_rule(
    q=q,          # [B, T, H_q, K]
    k=k,          # [B, T, H_q, K]
    v=v,          # [B, T, H_v, V]
    g=g,          # [B, T, H_v]
    beta=beta,    # [B, T, H_v]
    scale=scale,
    initial_state=initial_state,   # optional, [B, H_v, K, V]
    output_final_state=True,
    cu_seqlens=cu_seqlens,         # optional, for variable-length sequences
)
```

低階API：
```python
from flash_qla import chunk_gated_delta_rule_fwd, chunk_gated_delta_rule_bwd

# 前向
g, A, o, h, final_state = chunk_gated_delta_rule_fwd(
    q, k, v, g, beta, scale=scale, initial_state=h0, cu_seqlens=cu_seqlens
)

# 後向
dq, dk, dv, db, dg, dh0 = chunk_gated_delta_rule_bwd(
    q, k, v, g, beta, A, do, dht=dht, scale=scale, initial_state=h0, cu_seqlens=cu_seqlens
)
```

測試指令：
```
pip install flash_linear_attention==0.5.0
cd tests
python test_gdr.py --set develop
python test_gdr.py --set varlen --num-heads 32
```

基準測試：
```
pip install flash_linear_attention==0.5.0 flashinfer-python==0.6.9
cd benchmark
python bench_gated_delta_rule.py
```

**開源與致謝**

程式碼與基準開源於https://github.com/QwenLM/FlashQLA（MIT授權），受Flash Linear Attention、FlashInfer與TileLang啟發。部落格：https://qwen.ai/blog?id=flashqla。引用：
```
@misc{flashqla2026,
    title  = {FlashQLA: Flash Qwen Linear Attention},
    author = {Zhang, Chengruidong and Lin, Xi and Jiang, Huiqiang and Wang, Zekun and Li, Xiao and Cao, Yizhong and Zhuang, Bohan and Men, Rui and Zhang, Jianwei and Zheng, Bo and Lin, Junyang and Liu, Dayiheng and Zhou, Jingren},
    year   = {2026},
    publisher = {GitHub},
    howpublished = {\url{https://github.com/QwenLM/FlashQLA}}
}
```

FlashQLA不僅解決記憶體綁定與GPU低利用的核心痛點，還透過智慧折衷在邊緣Agentic AI與長情境TP場景展現實用優勢，值得開源社群採用。

## 標籤

Agent, 開源專案, AIGC, 阿里雲, Qwen, NVIDIA
