flashinfer-ai/flashinfer
FlashInfer: Kernel Library for LLM Serving
FlashInfer – 高性能GPUカーネルによるLLM推論
何が何か
- 大規模言語モデル(LLM)のサービングに必要な主要な演算を高速に実行する、高度に最適化されたGPUカーネルのコレクションを提供するC++/CUDAライブラリ(Pythonパッケージ付き)。主にアテンション、行列乗算(GEMM)、混合専門家(MoE)ルーティング、サンプリング、およびいくつかの補助演算に焦点を当てています。
なぜ重要か
- LLM推論は、特に多数の同時リクエスト(プレフィル+デコード)や低精度フォーマット(FP8/FP4)を使用する場合、アテンションおよびGEMMカーネルの速度によってボトルネックになることがよくあります。FlashInferは、FlashAttention-2/3、cuDNN、CUTLASS、TensorRT-LLMといった複数のバックエンド実装をバンドルし、使用しているGPUに応じて最速のものを自動的に選択。Turing GPU(RTX 20)から最新のBlackwellチップまで、あらゆる環境で「最先端の」スループットを実現します。
主な機能
| 分野 | FlashInferが提供する内容 |
|---|---|
| アテンション | • ページ化/不規則なKVキャッシュによる動的バッチ処理 • プレフィル、デコード、混合(POD)ワークロード用の別々のカーネル • DeepSeek MLA、カスケード(階層的)アテンション、ブロックスパースパターン、カスタムJIT可能バリアントのサポート |
| GEMM / Linear | BF16、FP8、FP4行列乗算;LoRA/MoE用のグループ化GEMM;Blackwell専用のNVFP4/MXFP4カーネル |
| 混合専門家(MoE) | 複数のルーティングアルゴリズム(DeepSeek-V3、Llama-4、top-k)と量子化されたエキスパート重みを備えた統合MoEカーネル |
| サンプリング/デコード | ソート不要のtop-k / top-p / min-pサンプリング;推測的デコード(speculative decoding)サポート |
| 通信 | 分散推論用のカスタムAllReduce、マルチノードNVLink(MNNVL)、NVSHMEM統合 |
| その他の演算 | RoPE(LLaMA 3.1含む)、統合RMSNorm/LayerNorm、統合SiLU/GELU活性化関数 |
ハードウェア対応
- Turing(SM 7.5)以降のすべてのNVIDIA GPUで動作。Ampere、Ada Lovelace、Hopper、および最新のBlackwellアーキテクチャ向けに特定のカーネルが最適化されており、低精度(FP8/FP4)パスは後者に限定されます。
使い方
- PythonウェHEELをインストール:
pip install flashinfer-python(オプションの追加ウェHEELで事前コンパイルされたカーネルやJITキャッシュシムが利用可能)。 - 高レベルAPIを呼び出す。たとえば、単一デコードステップには
flashinfer.single_decode_with_kv_cache(q, k, v)を使用。プレフィルにはより豊富なバッチAPIを利用。 - ライブラリはPyTorchの
torch.compileおよびCUDA Graphsと統合可能。低遅延サーバースタックに組み込むことができます。
エコシステムでの採用
- 主なオープンソース推論サーバーに統合されています:vLLM、TensorRT-LLM、HuggingFace Text Generation Inference、SGLang、MLC-LLM、LightLLM、Lorax、ScaleLLM。
ドキュメントとコミュニティ
- 完全なドキュメントは https://docs.flashinfer.ai で、SlackコミュニティとGitHubのディスカッションフォーラムがあります。CIバッジにより、CUDAバージョン(12.9、13.0、13.4)ごとの継続的テストが確認可能です。
FlashInferを選ぶべきタイミング
- NVIDIA GPU上で可能な限り高速なアテンション/GEMMカーネルが必要な場合、特に混合プレフィル-デコードワークロードを扱う、低精度(FP8/FP4)推論を希望する、または最新のBlackwellハードウェア上で動作させる場合。既存のPyTorchベースのサーバーで使用されているアテンションカーネルの即時置き換えとして利用可能です。
上記のすべての詳細は、リポジトリのREADMEから直接引用されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト