Deep Neural Network Library (DNNL)  1.2.0
Performance library for Deep Learning
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages

Deep Neural Network Library (DNNL) has both C and C++ APIs available to users for convenience. There is almost a one-to-one correspondence as far as features are concerned, so users can choose based on language preference and switch back and forth in their projects if they desire. Most of the users choose C++ API though.

The differences are shown in the table below.

Features C API C++ API
Minimal standard version C99 C++11
Functional coverage Full May require use of the C API
Error handling Functions return status Functions throw exceptions
Verbosity High Medium
Implementation Completely inside the library Header-based thin wrapper around the C API
Purpose Provide simple API and stable ABI to the library Improve usability
Target audience Experienced users, FFI Most of the users and framework developers

Input validation notes

DNNL performs limited input validation to minimize the performance overheads. The user application is responsible for sanitizing inputs passed to the library. Examples of the inputs that may result in unexpected consequences:

As DNNL API accepts raw pointers as parameters it's the calling code responsibility to