Skip to main content

CUDNN FrontEnd python library

Project description

cuDNN FrontEnd(FE)

cuDNN FE is the modern, open-source entry point to the NVIDIA cuDNN library and high performance open-source kernels. It provides a C++ header-only library and a Python interface to access the powerful cuDNN Graph API and open-source kernels.

🚀 Embracing Open Source

We will begin open-sourcing kernels based on customer needs, with the goal to educate developers and enable them to customize as needed.

We are now shipping OSS kernels, allowing you to inspect, modify, and contribute to the core logic. Check out our latest implementations:

  • GEMM + Amax: Optimized FP8 matrix multiplication with absolute maximum calculation.
  • GEMM + SwiGLU: High-performance implementation of the SwiGLU activation fused with GEMM.
  • Grouped GEMM + SwiGLU: SwiGLU activation fused with Grouped GEMM.
  • Grouped GEMM + dSwiglu: dSwiglu activation fused with Grouped GEMM.
  • NSA: Native Sparse attention as described in the Native Sparse Attention: Hardware-Aligned and Natively Trainable Sparse Attention.

Key Features

  • Unified Graph API: Create reusable, persistent cudnn_frontend::graph::Graph objects to describe complex subgraphs.
  • Ease of Use: Simplified C++ and Python bindings (via pybind11) that abstract away the boilerplate of the backend API.
  • Performance: Built-in autotuning and support for the latest NVIDIA GPU architectures.

Installation

🐍 Python

The easiest way to get started is via pip:

pip install nvidia_cudnn_frontend

Requirements:

  • Python 3.8+
  • NVIDIA driver and CUDA Toolkit

⚙️ C++ (Header Only)

Since the C++ API is header-only, integration is seamless. Simply include the header in your compilation unit:

#include <cudnn_frontend.h>

Ensure your include path points to the include/ directory of this repository.

Building from Source

If you want to build the Python bindings from source or run the C++ samples:

1. Dependencies

  • python-dev (e.g., apt-get install python-dev)
  • Dependencies listed in requirements.txt (pip install -r requirements.txt)

2. Python Source Build

pip install -v git+https://github.com/NVIDIA/cudnn-frontend.git

Environment variables CUDAToolkit_ROOT and CUDNN_PATH can be used to override default paths.

3. C++ Samples Build

mkdir build && cd build
cmake -DCUDNN_PATH=/path/to/cudnn -DCUDAToolkit_ROOT=/path/to/cuda ../
cmake --build . -j16
./bin/samples

Documentation & Examples

  • Developer Guide: Official NVIDIA Documentation
  • C++ Samples: See samples/cpp for comprehensive usage examples.
  • Python Samples: See samples/python for pythonic implementations.

🤝 Contributing

We strictly welcome contributions! Whether you are fixing a bug, improving documentation, or optimizing one of our new OSS kernels, your help makes cuDNN better for everyone.

  1. Check the Contribution Guide for details.
  2. Fork the repo and create your branch.
  3. Submit a Pull Request.

Debugging

To view the execution flow and debug issues, you can enable logging via environment variables:

# Log to stdout
export CUDNN_FRONTEND_LOG_INFO=1
export CUDNN_FRONTEND_LOG_FILE=stdout

# Log to a file
export CUDNN_FRONTEND_LOG_INFO=1
export CUDNN_FRONTEND_LOG_FILE=execution_log.txt

Logging Levels:

  • CUDNN_FRONTEND_LOG_INFO=0: No logging
  • CUDNN_FRONTEND_LOG_INFO=1: Full logging with tensor dumps
  • CUDNN_FRONTEND_LOG_INFO=10: Basic logging (safe for CUDA graph capture)

Alternatively, you can control logging programmatically via cudnn_frontend::isLoggingEnabled().

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

nvidia_cudnn_frontend-1.19.0-cp314-cp314-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.14Windows x86-64

nvidia_cudnn_frontend-1.19.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

nvidia_cudnn_frontend-1.19.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

nvidia_cudnn_frontend-1.19.0-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

nvidia_cudnn_frontend-1.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

nvidia_cudnn_frontend-1.19.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

nvidia_cudnn_frontend-1.19.0-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

nvidia_cudnn_frontend-1.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

nvidia_cudnn_frontend-1.19.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

nvidia_cudnn_frontend-1.19.0-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

nvidia_cudnn_frontend-1.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

nvidia_cudnn_frontend-1.19.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

nvidia_cudnn_frontend-1.19.0-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

nvidia_cudnn_frontend-1.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

nvidia_cudnn_frontend-1.19.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

nvidia_cudnn_frontend-1.19.0-cp39-cp39-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86-64

nvidia_cudnn_frontend-1.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

nvidia_cudnn_frontend-1.19.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ffa0e4c7a960bb05b5d1e4a1deec43baa8d0fa7ae3cac750b73803b9259d27bf
MD5 18427f8847a885ba3144aa02ac071551
BLAKE2b-256 63a2124338594de9df0363cf8b8772686e7f1f091ce6bca6bd1ccdfaa01628dd

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1a217967ea070660a63ef86362a3284e7768d06b0d81bb55468634948d9e9e9
MD5 b240b88541c9db42e67fd28081c32046
BLAKE2b-256 6f21ee6b734b793ee378aed604bd27b87166e27ab3e611ccd4feee44b634abc8

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2bb12bae0e7df658e726e53f2c437dd7b2a8ea5f9d64cfba51b3a015f743f628
MD5 2f9928c9b19297c55d60e43ed76640e8
BLAKE2b-256 f1d0f122c8903e962dc7ec0ad0f88734ba8a66d083ab8fe3778abcae3ab72ecb

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cc9659b2fabf45f03738359ea0cb022d9bef6caede0601222aaf48bab28962ae
MD5 f25efd8ccda94412b618e04eb867a204
BLAKE2b-256 194633ea82820afb7bcdec393d867523dd3ef42aff31d7333c5712be8c5313b4

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 15139f5c6ef13cb24d1c236cdafd82b3a26c2cb2d1b4b05f51e80ff26e1d2ce7
MD5 3b983eb917badbba73cc410c19ae474d
BLAKE2b-256 9ea35369330269ba62eb7723f5b1323317d85853de1dd7482a7c291972e935c8

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f656dc930fbfdfe9b514b44a567000f4309fdea17c813da436d1a7d9ee1c1fc9
MD5 d121e3677d4828aec409422c1288d1e9
BLAKE2b-256 c0b09d95fba01ba721edeff510e490589f9b1e0eba515a8b1f4aa1e48fa290ff

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 727300fd0b4f1886048dafedb8ca56549242fb4948d271a3117142c1bc7d7d42
MD5 0dc0e53a02ad2a9d8e4a59deb4d707b3
BLAKE2b-256 01ba1c8bb6d81d2edcecb7ad121ae76afdbdd3ee3f96a08f848cd295893d399f

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e06cf735795d47f96e1df0ab195121562a2e7a8fb62aaf6a177309cd49efbf5b
MD5 956df0570e7dbbfc0176e17d568f9430
BLAKE2b-256 7b988a6ae9b519eaf747595a5c0a4edd97c8121a6d8bd1c0df0b96a1b6adc1a2

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d6c61bf81b9f67b8f22b79bf32337ef8b9fd41e2edde769ceaf575c69745da74
MD5 55cac1c41d076393ff8403b98b1f8b5f
BLAKE2b-256 9f850daa8c6649cc25f29e2147b16b49e5037c242da30c96859cfc08c8e5ad08

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e2dddb94ce94fc2e0b1784d67311aa7508b330b139eaad8d7a4332125b4a914a
MD5 694f9b78b721da51c90f63b8eba924b5
BLAKE2b-256 d590827e6419f5d328f80277519454e4140820322df1a59a6cda736d30017929

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 735c62e35b88943b83bbf03e364aa62d1cfa36f204a28b206163008a89cecbf6
MD5 83a91171fa2e8a8a5c168b83b8a7cd05
BLAKE2b-256 9f1116a6670780f7eda6948c60b47948682e6271e34c9e3d19455c8e846bb529

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 60d3bf11bdc44482242cd309a79f6c8f8a9277a2fe96483c02d5473994025357
MD5 8f11532abbeef3dce7b42542144a5660
BLAKE2b-256 9469b0d62b8678dd1c34ce2ae1fec290ecbbd49705403d6368e7c5cc321ea837

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d2a12515a5072de169cdcea7503d24f24a1f12b007d7dfd02cfe820b89767619
MD5 adecedddda241e3eedd0838d64338be0
BLAKE2b-256 d86179dcd3a7b71e7b568cca0608dcc399361cc60c0d098b1cd8965c629eb1fb

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5a448c2aa44aee72e86a490bc0b58cce8ee2ebbd09ceabf6a09563c089a9f2c3
MD5 15678949932da02cd6244863d1ac12fe
BLAKE2b-256 8ca4e8ca13689fbb3ed9013c87f9f88b2e2a7219e43281b0995cb1930edbc377

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 99ae964eb10ce53af35911360f2e4e02a70b4c75a67444feb166f6bd8e0d024b
MD5 2f69f45cecfdbf76959f6da1a9747967
BLAKE2b-256 cdc44b8e9f11b63a46fd0086e3de2ed73cf63c43b4cd250b39e91bbcd25e5124

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 117855e50a81ba2ebc7c1f81fb04b868766222778747f4b5221619a41e55fdc2
MD5 877888f7401fe2c4aecf716dec9bce1a
BLAKE2b-256 9cbee9209440b2d4fff26e7c0143fdb3ab6cb133a3a514149b2586b75adc5761

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 379c3d83c5e177d9598cdc9d345c8ec2e90f61decdafe5340a1935451a300139
MD5 f61e72b04773be6f52b998d5b7749f10
BLAKE2b-256 6d2237da88a0535a83e140aa022012bf2235eab6c87a0ab0fce3f5efd1fafa58

See more details on using hashes here.

File details

Details for the file nvidia_cudnn_frontend-1.19.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 061348566e0a2829d07c14b4f8a09f010acbd154f4a73a4642d344ea791fa48f
MD5 2862021964c5fa4156f72700985deb20
BLAKE2b-256 359115ec85b9c908ee5897ffa91fc238b1d0bde69f3ca516a9a14c1585469f8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page