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

Uploaded CPython 3.14Windows x86-64

nvidia_cudnn_frontend-1.19.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

nvidia_cudnn_frontend-1.19.1-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.1-cp313-cp313-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.13Windows x86-64

nvidia_cudnn_frontend-1.19.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

nvidia_cudnn_frontend-1.19.1-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.1-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

nvidia_cudnn_frontend-1.19.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

nvidia_cudnn_frontend-1.19.1-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.1-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

nvidia_cudnn_frontend-1.19.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

nvidia_cudnn_frontend-1.19.1-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.1-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

nvidia_cudnn_frontend-1.19.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

nvidia_cudnn_frontend-1.19.1-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.1-cp39-cp39-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.9Windows x86-64

nvidia_cudnn_frontend-1.19.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (2.4 MB view details)

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

nvidia_cudnn_frontend-1.19.1-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.1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 65fefc992d7398ac6e98347c7f3d74a1b8122012893d41c75ea034cb43b51788
MD5 c482f7408d89dca7cced084294e5f4e7
BLAKE2b-256 1754bc6926cc9038dc1f64d3a398ecaa78cb925985e6058bf28895c450d82ccc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 05b19c76e3ce2edfa9d17f8b7ee1c6d3b00cb389b95739121ac6736df15f6747
MD5 b926a99041af768bb47b2bd39e28d90a
BLAKE2b-256 3ed7f18fc19d0c6d32b0617de29e180a198455f1caf491cbeadb5cc5ede6fd70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3f14d616587b2ef0949bd33ce7d37481ec424558dd56941b11a6098a7a840e47
MD5 5a48572172996c0c7fca3846d678ca22
BLAKE2b-256 58d3fb0cdc6d778c0650182b1090b465ecd14c96b7ae607d1c15bb130abd611b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 409ec11e845f7fa14dbeb242f27080e4848cab7f66c3ad8d857051af0216bcb7
MD5 f1d6a7895d94020c83c2515aac757ce9
BLAKE2b-256 3ec1891ed3920d83bbe05cf74460f38d6f43e027a2b7ad63b4307e3d9c345d32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 451e57f95a44dceb9a7cfc6842cc0e645f3f3a44f8f4ccd1e7501f06ce4361d3
MD5 188d4675c3cc1ad6d9f9126a644fe0d7
BLAKE2b-256 55f579b5bb595ac86c2dae658bbb2f19c92ae495592a3d98b8f401a1cbb050cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5726bbda42a839aae0c9604272dcabbf298cfd8f3a9984c4b36161543abfb63b
MD5 11b05128625e82a3fd929c4eac1d5459
BLAKE2b-256 1696732ea16f16bd08566ac9988b967e64334e067ceb50824a9e498ab65bed88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 353814c052345c6fa3b06a904102c9a23c04a9ab66c3cb83077f5fec80930b3f
MD5 3b1d2229e1e407dcc1d0778a8e1a4547
BLAKE2b-256 b3360a020d9b959a32d9aa9b784d68c857a5e8dc09581fac05426178c0812d90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4f02adabf32c0ff305eaaa87c7cf27baea3ac396b01affffcfdcecc95f55fa6
MD5 1e03ae44cf90d26ae76ce7bcbebb8202
BLAKE2b-256 4502b2bfbc85bcfba46471c321cd50a3451179911d161acc8380578436a5fb09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f288b3475b961fc69daa6ca1d738ccf3ab589ad0f7a59762462c7b00237f3633
MD5 74540eda3a9f86d6870931e98bdc7772
BLAKE2b-256 0b75ccede2c3e9d422ca32900fd41fcbe461a329b1202a13ccd135ea46047539

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 35bea3a533281c64361d094d3c07d0a536ebd25cafccf76ab9b1ba8df6d93c39
MD5 22ec80621b5b0120764eae62d664c511
BLAKE2b-256 e3a891e8b75f94978423f357e80d440b812f118dca1969b0e2d12bf035a29f7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 241fba15057135fed04223c5e7171a44bb407cb67d706255f072192553984792
MD5 2fd74cad3811f05d604c6997eaf84800
BLAKE2b-256 55c5b9d7d54f6c62f556995c1302066a1afab6a1ee012e70525ac9ca165d4706

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 25b79095b4d8e8ba131eb864e367d5c497a702db96ef50ca5e0ce7292335ca68
MD5 04e348b3b33cb7745908c501cb6e599d
BLAKE2b-256 84f9e81193aeb8d68ca004a18e4b9f36f8779402298a2034030f7ad057c495bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 035dc1f8766181b83723e61f1c20de9ba39ffedba6f37fbf996305eeec3cdadb
MD5 f6c4ef433ea0519bf2a7731209334c64
BLAKE2b-256 7051b46174e161e6a3296b94eb44737db4029ab1486eb488031e02203e6dadd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2ef4db77a06b0c1ba2bdea41dd056d4ab2ec7a291876153c2148b978729a40b4
MD5 3ca891170f5b569ea508f70709a75114
BLAKE2b-256 dd3213c3c7fb2d476efe1a615732f9104da6a0b1026a8a24cc4a7bbc6815c560

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ddc753d312e74ba4c0e2528a796411cdb93af3950811226e6f2b6e4420b97b74
MD5 4f1fe2ad13c6e9c28c4034b3c4a6d211
BLAKE2b-256 e8b3cc16cafc95c85b0c2c2dd33628822315b409c1866eff3385558842277b45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8110931a7b2c4e6fb08bcfaf992aecb43607febe4ee11ebc64094cf74f815562
MD5 94fb95ff39385dc674a646c19d2c0d4e
BLAKE2b-256 33a84ffcf2e322a2568808f483d6ce9b376c9b7ab3f1183f5d3f62118b3b7423

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 64775262d138e412f960b40172214d0aa3956a1ec53073dd8c00e500c571afa4
MD5 597b1783e24e06fb89c010282d5628fc
BLAKE2b-256 5e14dace932df64ada50605771b32f8af3ca77f025c8d74cbe9a1b05eb866292

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nvidia_cudnn_frontend-1.19.1-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ad89bd39c0ffcf159cfc28444f7fc174477fcb701ea708dd9f0349048739cd3f
MD5 3156614cacc14a6959bf33edcd7cb510
BLAKE2b-256 d7f400395ea843add876c8e010e7c4f1ca7e4b99891923a82365283f10070c0c

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