project
FlashQLA - Tongyi Labsがオープンソース化した高性能線形アテンション演算子ライブラリ
FlashQLAは、TileLangをベースとした高性能な線形アテンション演算子ライブラリであり、Tongyi Labsによってオープンソース化されています。FlashQLAは、演算子融合、ゲート駆動型カード内シーケンス並列処理、およびHopにおけるWarp特化型最適化によって高いパフォーマンスを実現しています。
FlashQLAとは何ですか?
FlashQLAは、Tongyi Labsが開発したTileLangベースのオープンソース高性能線形アテンション演算子ライブラリです。演算子融合、ゲート駆動型カード内シーケンス並列処理、およびWarp-Specialized最適化により、FlashQLAはHopper上のFLA Tritonと比較して、順方向で2~3倍、逆方向で2倍の高速化を実現し、2Bから397Bまでのモデルに対応し、事前学習とエッジ推論の効率を向上させています。FlashQLAを使用するには、SM90、CUDA 12.8以降、およびPyTorch 2.8以降の環境が必要です。
FlashQLAの主な機能
-
高性能線形アテンション演算子ライブラリQwen Gated Delta Network (GDN) シリーズ全体の注意層に対する徹底的な最適化。
-
演算子融合の加速GDN Chunked Prefillの順方向処理と逆方向処理は適切に統合され、そのパフォーマンスが最適化されている。
-
フルスペックモデル対応2Bから397Bまでの複数の仕様をサポートし、TP1からTP8までのシナリオに対応します。
-
2段階APIインターフェースFLAシグネチャおよび基盤となるfwd/bwdエントリポイントを整合させるための高レベルAPIを提供します。
-
可変長配列のサポート組み込みのvarlen可変長シーケンス処理機能により、実際のトレーニングデータおよび推論データの分布に適応します。
FlashQLAの技術原則
-
TileLang Warp-Specialized Kernel主要な融合カーネルはTileLangに基づいて構築されており、データ転送、Tensor Core計算、およびCUDA Core計算の重複を実現するためにワープグループの特殊化が使用されています。
-
自動カード内シーケンス並列処理(AutoCP)GDNゲートの指数関数的減衰特性を活用することで、TP、長いシーケンス、少数のヘッドカウントなどのシナリオにおいて、カード内シーケンス並列処理が自動的に有効になり、GPU SMの利用率が向上します。
-
スライド式窓の暖房機構減衰特性を持つ線形アテンションヘッドの場合、補正行列Mの計算を省略して、わずか6~8チャンクのウォームアップでサブシーケンスの初期状態を正確に取得できます。
-
ハードウェアに配慮した代数書き換えGDN Chunked Prefillの順方向および逆方向の処理に対して代数変換を実行することで、数値精度に影響を与えることなく、Tensor Core、CUDA Core、およびSFUのオーバーヘッドを効果的に削減します。
-
メモリアクセスと並列処理のバランスを取った妥協的なアーキテクチャ計算処理は2つの融合カーネルに分割され、その間にCP前処理が挿入されることで、完全に融合されたカーネルの小規模バッチ/TPシナリオにおけるGPU利用率の低下という問題を回避します。
FlashQLAの使い方
- 環境検査ハードウェアはNVIDIA SM90(Hopperアーキテクチャ)であることが確認され、ソフトウェア環境はCUDA 12.8以降およびPyTorch 2.8以降の要件を満たしていました。
- インストールと展開GitHubからFlashQLAリポジトリをクローンし、pipを使用してコンパイルおよびインストールします。
- モジュールのインポートPythonでのインポート
chunk_gated_delta_rule関数。 - データ準備入力テンソルq、k、vとゲートパラメータgおよびbetaを準備し、各テンソルの形状がインターフェース要件を満たしていることを確認してください。
- 計算を実行する: 電話
chunk_gated_delta_ruleまた、対応するパラメータを渡して、出力結果Oと最終状態を取得します。 - 詳細設定可変長シーケンスを処理するには、以下を渡すことができます...
cu_seqlensパラメータ:ステータスの継続が必要な場合は、以下のパラメータを渡すことができます。initial_state。 - 自動最適化AutoCPのシーケンス並列処理は、バッチサイズとシーケンス長に基づいて自動的にトリガーされるため、手動での設定は不要です。
FlashQLAの重要な情報と使用要件
-
出版社QwenTeam
-
オープンソースアドレス:github.com/QwenLM/FlashQLA
-
ハードウェア要件NVIDIA SM90(H200などのホッパーアーキテクチャ)
-
ソフトウェア要件:CUDA 12.8+,PyTorch 2.8+
-
サポートモデルQwen3.5 / Qwen3.6シリーズ(ヘッド寸法は64~8、TP1~TP8に対応)
-
加速効果順方向2~3倍、逆方向2倍(FLA Triton Kernelとの比較)
FlashQLAの主な利点
-
メモリアクセスと並列処理のバランスを取った妥協的なアーキテクチャ計算処理は、CP前処理を間に挿入した2つの融合カーネルに分割されます。これにより、完全に融合されたカーネルを使用した場合に発生する、小バッチ/TPシナリオでのGPU利用率低下の問題を回避できます。カーネルを適切に分割することで、HBMによる中間変数の繰り返し読み書きに伴うメモリアクセスオーバーヘッドが削減されます。
-
AutoCP自動起動メカニズム限定
batch_size × num_heads ≤ 40またはbatch_size × num_heads ≤ 56 且 seq_len ≥ 8192不要な冗長計算を回避するために、カード内シーケンス並列処理を自動的に起動し、並列処理とメモリアクセスコストのバランスを適応的に調整します。 -
スライド式窓の暖房機構GDNゲートの指数関数的減衰特性を利用することで、線形アテンションヘッドの60~80%において、サブシーケンスの初期状態を正確に取得するために必要なウォームアップのチャンク数はわずか6~8個で済み、補正行列Mの計算を直接省略できるため、CP前処理のオーバーヘッドが大幅に削減されます。
-
Warp-Specializedは重なりを計算しますTileLangのワープグループ特殊化設計に基づき、同一SM内でのプロデューサーとコンシューマーのワープグループ間の連携を可能にし、ピンポン構造を用いてデータ転送とTensor Core/CUDA Coreの計算をカバーします。
-
ハードウェアに配慮した代数書き換え順方向および逆方向の処理において代数変換と簡略化を実行することで、数値精度に影響を与えることなく、テンソルコア、CUDAコア、およびSFUのハードウェアオーバーヘッドを効果的に削減します。
FlashQLAプロジェクトのアドレス
- プロジェクト公式サイト:https://qwen.ai/blog?id=flashqla
- GitHubリポジトリ:https://github.com/QwenLM/FlashQLA
FlashQLAの競合製品比較
| 比較対象寸法 | FlashQLA | FLA (Flash Linear Attention) | FlashInfer |
|---|---|---|---|
| 位置 | Qwen GDN専用高性能オペレータライブラリ | 汎用線形アテンションアルゴリズムライブラリ | 汎用LLM推論最適化エンジン |
| テクニカルルート | TileLang Warp-Specialized Kernel | Tritonカーネルの段階的な実装 | CUDAカーネルのプリコンパイル最適化 |
| 前方への加速 | ベンチマーク | 2.95× slower | 5.33× slower (397B TP8 32K) |
| 逆加速 | ベンチマーク | 2× slower | サポートされていません / 最適化されていません |
| シーケンスパラレル | 自動カード内CP(AutoCP) | CPを手動で設定する | GDN固有のCPはサポートされていません。 |
| 演算子融合度 | 二重融合カーネル + CP前処理 | 各ステップごとに独立したカーネル | 一般的な融合注意 |
| スライディングウィンドウの最適化 | ゲートウォームアップ機構により、Mマトリックスが不要になります。 | 標準的なCPでは、M行列の計算が必要となる。 | なし |
| GPU使用率 | 小ロット/TPシナリオにおけるSM利用率を自動的に向上させる | 頭数が少ないシナリオでは、利用範囲が限られる。 | 一般的なシナリオ最適化 |
| ハードウェア要件 | SM90 (Hopper), CUDA 12.8+ | 汎用NVIDIA GPU | 汎用NVIDIA GPU |
| モデルの適応 | Qwen3.5 / Qwen3.6 全シリーズ | 一般線形アテンションモデル | 一般的なLLM推論 |
| オープンソースのステータス | オープンソース(GitHub) | オープンソース | オープンソース |
FlashQLAの応用シナリオ
-
大規模モデルの事前学習397B、122B、35B、27Bを含むQwenモデルの全範囲をカバーし、256Kの長いコンテキストでのトレーニングをサポートし、エンドツーエンドのトレーニングにおけるアテンション層の計算および時間オーバーヘッドを大幅に削減します。
-
エンドサイドのエージェント推論バッチサイズが1で、モデルサイズが小さい(例:2B / 0.8B)チャンク分割による事前充填シナリオでは、AutoCPはバッチサイズが小さい場合のGPU利用率を向上させ、エッジエージェントのリアルタイム応答を高速化します。
-
大規模なオンライン展開テンソル並列処理(TP)のシナリオでは、これはコーディングエージェントからの長い入力シーケンスを処理する際に、チャンク化された事前入力によるバッチサイズの不足が原因で発生するGPU利用率のボトルネックを解消し、サービスのスループットを向上させます。
-
一般的なGDN/線形アテンションアーキテクチャの高速化ゲートデルタネットワークまたは線形アテンションアーキテクチャに基づくあらゆるLLMトレーニングおよび推論に適用可能で、高性能な既成の演算子代替ソリューションを提供します。