NVIDIA/cudnn-frontend

cuDNN Frontend is NVIDIA's modern, open-source entry point to the cuDNN library and a growing collection of high-performance open-source kernels.

NVIDIA cuDNN Frontend (cuDNN‑FE)

何であるか – NVIDIAのcuDNN Graph APIをラップする、軽量でヘッダーのみのC++ライブラリとPythonバインディング。現代のNVIDIA GPU(Hopper H100/H200、Blackwell B200/GB200/GB300)上で、高速なディープラーニングプリミティブ(畳み込み、GEMM、アテンション、正規化など)を構築・実行するための高レベルで使いやすい方法を提供します。また、JITコンパイル可能で実行時に選択可能な、増加するオープンソースカーネル群(Flash‑Attention / SDPA、結合GEMM‑+‑アクティベーション、ブロックスパースアテンションなど)も同梱されています。

主な特徴

  • 統一されたグラフAPI – 一度 cudnn_frontend::graph::Graph オブジェクトを作成し、複数回の実行で再利用可能。
  • ヘッダーのみのC++ – リンク対象のライブラリなし。単に #include <cudnn_frontend.h> するだけ。
  • Python / PyTorch統合 – pip install nvidia‑cudnn‑frontend で cudnn Pythonモジュールが提供され、pybind11バインディングと torch.compile 用のカスタムオペレータが利用可能。
  • 自動チューニング&プランランク – 新しいOSS「FROST」カーネルを含む複数のエンジン候補を構築し、最速のものを自動選択。
  • オープンソースカーネル – Flash‑Attention(SDPA)、Mixture‑of‑Experts向けグループGEMM、結合RMSNorm+SiLU、ブロックスパースおよびネイティブスパースアテンションなど。すべてCuTe DSLで記述され、Apache‑2.0ライセンスで提供。
  • FP16、BF16、FP8、MXFP8のサポート – Hopper/Blackwellでの最新の低精度フォーマットを可能にします。

一般的な利用例

  • H100/Blackwell上で最速のアテンションカーネルを必要とするカスタムTransformerモデルを構築する研究者。
  • CUDAカーネルを書かずにPyTorchパイプラインにcuDNN加速レイヤーを統合するエンジニア。
  • Mixture‑of‑Expertsモデルをトレーニングするチームで、メモリトラフィックを削減するための結合グループGEMM + アクティベーションカーネルを希望する人。
  • 最新のGPUカーネルを検査・修正・貢献したい人(OSSカーネルはJITコンパイル可能でカスタマイズ可能)。

インストール

  • Python: pip install nvidia-cudnn-frontend(Python 3.10+、NVIDIAドライバ、CUDA Toolkit、cuDNN ≥ 8.5.0が必要)。
  • C++: include/ディレクトリをコンパイラのインクルードパスに追加し、CUDAおよびcuDNNライブラリとリンクしてコンパイルする。
  • ソースから: Pythonバインディング用に pip install -v git+https://github.com/NVIDIA/cudnn-frontend.git、C++サンプル用にはCMakeでビルド(cmake … && cmake --build .)。

エコシステムと統合

  • PyTorchと連携可能(カスタムオペレータは python/cudnn/experimental/ops に配置)。
  • CUDA Graphと互換性があり、torch.compileパイプライン内で使用可能。
  • 畳み込み、行列乗算、SDPA/Flash‑Attention、RMSNormなどに関するサンプルノートブックとC++例が提供。
  • ドキュメントはNVIDIAの開発者サイトにホストされ、詳細な記事を掲載するブログも運営中。

成熟度

  • NVIDIAによって積極的にメンテナンスされており、PyPIにバージョン付きリリースが公開されています。
  • コアのフロントエンドAPIは安定しており、新しいOSSカーネルは段階的に追加(例:FROST GEMM、Flex Attention、HSTU、DSA)。
  • ロギングおよび環境レポートユーティリティにより、デバッグと再現性が向上。

ライセンス

  • 主に Apache License 2.0;一部のファイルはMITライセンス(明確にマーク済み)。すべての第三者ライセンスは THIRD_PARTY_LICENSES.txt に記載。

関連

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