RKNN API Rockchip provides a set of RKNN API SDK, which is a set of acceleration scheme for NPU hardware of neural network based on RK3399Pro Linux/Android, and can provide general acceleration support for AI-related applications developed with RKNN API. RKNN API SDK related API introduction refer to the documentation《 RK3399Pro_Linux&Android_RKNN_API_V*.pdf》,The following is an introduction to the configuration and use of the RKNN API. Refer to the example in the RKNN API for details. 1. Linux The application only needs to include the header file and the dynamic library to write the relevant AI application. Fedora 1)Installing rknn-api development kit through dnf sudo dnf install –y rknn-api The method as follows: a. Include header file in your code: #include b. Add the following statement link library file in Makefile: LDFLAGS += -lrknn_api 2)download from netdisk RKNN API: LINK The method as follows: a. Copy the rknn_api/ directory to the root directory b. Include header file in your code #include "rknn_api.h" c. Add the following statement in Makefile to set the link library path and header file path CFLAGS += -Lrknn_api/lib64 -Irknn_api/include d. Add the following statement link library file in Makefile LDFLAGS += -lrknn_api The structure as follows: ... ├── Makefile └── rknn_api ├── include │   └── rknn_api.h └── lib64 └── librknn_api.so ... Ubuntu Please refer to 2)download from netdisk to configuration 2. Android The RKNN API supports Android 8.1 and Android9.0 systems released by Firefly (or systems compiled from published source code) Download from Netdisk RKNN API: LINK The dynamic library path of RKNN API is lib64/librknn_api.so and lib/librknn_api.so。The application only needs to include the header file and the dynamic library to write the JNI Library of the relevant AI application. Currently, only JNI is supported on Android. The specific configuration of Android Studio is as follows a.Copy lib64/librknn_api.so to Project jniLibs/arm64-v8a and lib/librknn_api.so to jniLibs/armeabi-v7a. The results of the catalogue are as follows ├── jniLibs │   └── arm64-v8a │   └── librknn_api.so │   └── armeabi-v7a │   └── librknn_api.so b. Copy rknn_api.h to the JNI source directory for reference: ├── jni │   ├── direct_texture.cc │   ├── direct_texture.h │   ├── rknn_api.h │   ├── ssd_image.cc │   ├── ssd_image.h │   ├── ssd_native_c_api.cc │   └── ssd_native_c_api.h c. Configure CMakeLists.txt,link librknn_api.so ... set(link_libs ${CMAKE_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/librknn_api.so ... ${log-lib} ) target_link_libraries( rkssd4j ${link_libs} ) ... d. Configure build.gradle and complie the JNI library of arm64-v8a and armeabi-v7a android { compileSdkVersion 28 buildToolsVersion '28.0.3' defaultConfig { ... ndk { abiFilters "arm64-v8a", "armeabi-v7a" } } ... externalNativeBuild { cmake { path "CMakeLists.txt" } } } The structure as follow: # pwd: $(project_root)/app . ├── app.iml ├── build ... ├── build.gradle ├── CMakeLists.txt └── src └── main ├── AndroidManifest.xml ... ├── jni │   ├── direct_texture.cc │   ├── direct_texture.h │   ├── rknn_api.h │   ├── ssd_image.cc │   ├── ssd_image.h │   ├── ssd_native_c_api.cc │   └── ssd_native_c_api.h ├── jniLibs │   └── arm64-v8a │   └── librknn_api.so │   └── armeabi-v7a │   └── librknn_api.so ...