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)パスは後者に限定されます。

使い方

  1. PythonウェHEELをインストール:pip install flashinfer-python(オプションの追加ウェHEELで事前コンパイルされたカーネルやJITキャッシュシムが利用可能)。
  2. 高レベルAPIを呼び出す。たとえば、単一デコードステップには flashinfer.single_decode_with_kv_cache(q, k, v) を使用。プレフィルにはより豊富なバッチAPIを利用。
  3. ライブラリは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から直接引用されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト