Backend API Overview — NVIDIA cuDNN Backend (original) (raw)

The NVIDIA CUDA Deep Neural Network (cuDNN) library offers a context-based API that allows for easy multithreading and (optional) interoperability with CUDA streams. This API Reference lists the data types and API functions per sub-library.

The cuDNN version 9 library is reorganized into several sub-libraries. This new library structure separates legacy functionality (an imperative API with a fixed set of operations and fusion patterns in cuDNN version 7 and older) from the graph API (a declarative API, introduced in cuDNN version 8), as well as from the engine implementation. The graph API is now grouped into a single library (libcudnn_graph.so).

We recommend users to make API calls through the graph API, but the older shim layer (libcudnn.so) and legacy libraries (libcudnn_cnn.so, libcudnn_ops.so, libcudnn_adv.so) can still be directly used. The engine libraries (libcudnn_engines_precompiled.so, libcudnn_heuristic.so, and libcudnn_engines_runtime_compiled.so) contain necessary internal functionality to support the aforementioned sub-libraries. This library split is done in a way to allow for more flexibility on the user side in loading libraries. The mechanism for more flexible configurability of libraries will be introduced in a later version of cuDNN.

Dynamic Library Dependency Structure of cuDNN on Linux

The API is split into the following libraries, each having corresponding header files in the include directory:

cudnn_graph

cudnn_ops

cudnn_cnn

cudnn_adv

Added, Deprecated, and Removed APIs#

API Changes for cuDNN 9.8.0#

API Changes for cuDNN 9.5.0#

API Changes for cuDNN 9.2.0#

API Changes for cuDNN 9.1.0#

API Changes for cuDNN 9.0.0#