Visible to Intel only — GUID: GUID-269183EC-3E09-48B4-86C2-AF4934EDF908
Visible to Intel only — GUID: GUID-269183EC-3E09-48B4-86C2-AF4934EDF908
Linking to the Library
oneDNN includes several header files providing C and C++ APIs for the functionality and one or several libraries depending on how oneDNN was built.
Header Files
File |
Description |
---|---|
include/oneapi/dnnl/dnnl.h |
C header |
include/oneapi/dnnl/dnnl.hpp |
C++ header |
include/oneapi/dnnl/dnnl_types.h |
Auxiliary C header |
include/oneapi/dnnl/dnnl_config.h |
Auxiliary C header |
include/oneapi/dnnl/dnnl_version.h |
C header with version information |
include/oneapi/dnnl/dnnl_graph.h |
C header for graph API |
include/oneapi/dnnl/dnnl_graph.hpp |
C++ header for graph API |
include/oneapi/dnnl/dnnl_graph_types.h |
Auxiliary C header for graph API |
include/oneapi/dnnl/dnnl_ukernel.h |
C header for ukernel API |
include/oneapi/dnnl/dnnl_ukernel.hpp |
C++ header for ukernel API |
include/oneapi/dnnl/dnnl_ukernel_types.h |
Auxiliary C header for ukernel API |
Libraries
Linux
File |
Description |
---|---|
lib/libdnnl.so |
oneDNN dynamic library |
lib/libdnnl.a |
oneDNN static library (if built with DNNL_LIBRARY_TYPE=STATIC ) |
macOS
File |
Description |
---|---|
lib/libdnnl.dylib |
oneDNN dynamic library |
lib/libdnnl.a |
oneDNN static library (if built with DNNL_LIBRARY_TYPE=STATIC ) |
Windows
File |
Description |
---|---|
bindnnl.dll |
oneDNN dynamic library |
libdnnl.lib |
oneDNN import or full static library (the latter if built with DNNL_LIBRARY_TYPE=STATIC ) |
Linking to oneDNN
The examples below assume that oneDNN is installed in the directory defined in the DNNLROOT environment variable.
Linux/macOS
g++ -I${DNNLROOT}/include -L${DNNLROOT}/lib getting_started.cpp -ldnnl
clang++ -I${DNNLROOT}/include -L${DNNLROOT}/lib getting_started.cpp -ldnnl
icpx -I${DNNLROOT}/include -L${DNNLROOT}/lib getting_started.cpp -ldnnl
Support for macOS hardened runtime
oneDNN requires the com.apple.security.cs.allow-jit entitlement when it is integrated with an application that uses the macOS hardened runtime. This requirement comes from the fact that oneDNN generates code on the fly and then executes it.
It can be enabled in Xcode or passed to codesign like this:
codesign -s "Your identity" --options runtime --entitlements Entitlements.plist [other options...] /path/to/libdnnl.dylib
Example Entitlements.plist :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key><true/>
</dict>
</plist>
Windows
The examples below assume that oneDNN is installed in the directory defined in the DNNLROOT environment variable.
icx /EHa /I"%DNNLROOT%\include" getting_started.cpp "%DNNLROOT%\lib\dnnl.lib"
cl /EHa /I"%DNNLROOT%\include" getting_started.cpp "%DNNLROOT%\lib\dnnl.lib"
Refer to the Microsoft Visual Studio documentation on linking the application using MSVS solutions.