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.
  • 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

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.18.0-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

nvidia_cudnn_frontend-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.0 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

nvidia_cudnn_frontend-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.0 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

nvidia_cudnn_frontend-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.0 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

nvidia_cudnn_frontend-1.18.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.0 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

nvidia_cudnn_frontend-1.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.0 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp39-cp39-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86-64

nvidia_cudnn_frontend-1.18.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.2 MB view details)

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

nvidia_cudnn_frontend-1.18.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (2.0 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.18.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5053b473fa74168b5fbf35934cd6187f88aa03b8447b9f2cd417332d5e5c9569
MD5 5822e429ba6ff06b44b3b7726fb4da2b
BLAKE2b-256 6753df2810b56d259ef96fa6beaa1381bd14c29fbe82836b409516e864c5e177

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37688c81a34ac590aff9de4c34d2968bab949411af707baa327616ebd4b34ae1
MD5 a687d070ec7db299234087273d5cdc13
BLAKE2b-256 ab5752d18e1f50979eeabfafb408ec73068afc5a1e1ccd21636240317cd456d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b489da1b30f1d7da822b37b89cc4f68afd80e020eb57e4ab24921f8b57f6e946
MD5 13f355f0acfa25da20757fe6d90048d7
BLAKE2b-256 a30a515209dd2afc6027bf1112bf415f575bfe9628d18877abe7424cb597dd7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7eefa5f10cc003df5f3593f82f1ee6c001fc3412bdc78430c751914dfceefd7f
MD5 05d16c81ff4cc1e160e31a22dca08a8c
BLAKE2b-256 a15e148cc6609dba326e620e4d949246020dfba05ca07d0387442e62b71d19b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c0544206b02cae9da4f044ca3fe7416b99e0c8a8052285dd3e5a8fc445d34f9c
MD5 9e894a0b726caaad7f325191f7150289
BLAKE2b-256 19743038cf496d5de7cfdff730f5202e438c17d9123de507059340e02ddff9d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5a6e2b7bd43705ffa4af3b187374fdd5e7d09fc228a4d65fc8b4b0a537a8e605
MD5 45b7aca7d90408f55b66e52646212317
BLAKE2b-256 e8bddb791a26ebb6a6e1268f518e18c82d8ad18546f7008f4b0d5bde15f927de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e13f7dd46cdb4762dde87f181f06d1c5e15e9478bbdd547bfa74d9b11f415aae
MD5 9a0a690180b63f255d5f6f6f2290e0a4
BLAKE2b-256 aa1f751a5a8cfdc95fb4dc556192d37369ae488c30c473fe9a3ec720b23d07ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c023539ca6de99234cf5102c3ec0d6af817f5396fc93028a22ba5b834a35b8a
MD5 57831cc4f887e64dd307befaf85ce268
BLAKE2b-256 c65208f98262e77b1cbcc834cc1a5db494d0661ea1dbdea58c2e2d51a57fdaca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 310b417f2848a83d1437203fcaeea320a74fb7f28af20bf42bf5afc9c01f1c12
MD5 70bbf90840c2c3e8c3298c443a354925
BLAKE2b-256 e3b4604e230378680ee117849a4e1045baca092f93161a829291a84d5acce70c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 baa509effc4d299d3f04e549d4188f88bca8a8b527f483cbd2f66bc18f13a8b1
MD5 70322734cb0059c517ace882f1baa028
BLAKE2b-256 52dd8613dfd029d076b86a8a87efe3f4bb4ab73cec15fa8fc27e665098f4d167

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 382ea063b92cbfd5b442cb75ff8422932d78276aecf139e46713ed1ad3d07af4
MD5 3372e6ba8ddc292fd19b3ed94791ed36
BLAKE2b-256 13c7c3624b3ed77b102618f26295e816b27f1c3ebb1143730237a9f51d403c3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f6d4d0b88d617b233a503c84980b54d840b60b2734497d1a7a071ec5293daec2
MD5 1e16807b6a300edc9122f3764c0e0569
BLAKE2b-256 e29a83d3d080118de4a7810fa019349edec634b8b37b9cafaacd05719de62dd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 06252021ef1e5a7256f1e70429a426b01792636c05cc547fe8e64c6885a9652e
MD5 2fb9754312bdda4286d9c392ffbebe71
BLAKE2b-256 19a17caae2243540bc60e47eae95f0fd913c9baa05cf94df0471914f70d45158

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e4bcca42259e358002c8867e3624a558f66cd5dff2cc6c3aafd860ef2f41730
MD5 cd4543a5a69742126e0d5d80ac024af6
BLAKE2b-256 82a7765a17c6a9496196c34f269d17dfb902b6c618c0261c0962511e95302e81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 baa6fbc8e7c55f1c78c0374ed9a890e1cf81acaca0c92d6135d18a8e3c985244
MD5 769daba204c2d62eedfce7b1f7d6a544
BLAKE2b-256 86bef5a1e633c524c13c0182213ab27dab42dca29a3c785be5ff74d2d185aed1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e696a29a0d3c171ac81ad4374017771cf4c17081838a2115bde4c703fa9751c6
MD5 e2bfb27a5be042d4f6949309c32a24c6
BLAKE2b-256 1e2d7f59763048993418dfb608d493b5bc3fbbf0466b8dec6b471bb9673353f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd9049e397e3bbb81ceeb6e384e60fea08c5c7cfa07029e7509ec98002d3064f
MD5 18a408dda02dc3e9a8a544d301c258c2
BLAKE2b-256 8bd12ebce3ab0c5acb7f61e446ddf55e35c942e54be845b6aad85a752cb834c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.18.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8e019ec7e693e6d38acd2c5a50b1834726bd4213ec8b5eb18d8f6f3ae83a80fb
MD5 df36c561d5910d415cef2610d7e03c9a
BLAKE2b-256 505b53859354d2bbb6b7f9693f4a80020ca0b944831d351585ce75d4cc673ae2

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