After converting the NN model using the Acuity NN Toolkit, the sample code for using the model will be automatically generated. The code is located in path "/Models/{model name}/wksp/ {model_name}_ {type}_nbg_unify". How to convert a model please refer to NN model conversionModel Conversion
The sample code encompasses operations associated with the NN model, along with preprocessing and postprocessing related to the NN model. We need to cross-compile this code into an application that can execute on C3V Linux. Additionally, we should utilize it along with the generated NB file.
...
When compiling NN-related applications, it is necessary to include SDK's headers and libraries.
Example of SDK Include Includes Path:
Code Block |
---|
INCLUDES+=-I$(VIVANTENN_SDK_DIR)/include/ \ -I$(VIVANTENN_SDK_DIR)/include/CL \ -I$(VIVANTENN_SDK_DIR)/include/VX \ -I$(VIVANTENN_SDK_DIR)/include/ovxlib \ -I$(VIVANTENN_SDK_DIR)/include/jpeg |
Example of SDK Link Libraries:
...
This is an example makefile that just needs to be placed in wksp/ {model_name}_{type}_nbg_unify Folder. And set the relevant VIVIANTE_ SDK_ DIR and TOOLCHAIN can complete the compilation of the app:
Code Block |
---|
BIN=sampleApp VIVANTENN_SDK_DIR=Path to VIVANTENN SDK directory TOOLCHAIN=Path to toolchain directory VIVANTENN_SDK_INC=$(VIVANTENN_SDK_DIR)/include VIVANTENN_SDK_LIB=$(VIVANTENN_SDK_DIR)/lib CROSS_COMPILE=$(TOOLCHAIN)/aarch64-none-linux-gnu- CC=$(CROSS_COMPILE)gcc CXX=$(CROSS_COMPILE)g++ CFLAGS=-Wall -O3 INCLUDE += -I$(VIVANTENN_SDK_INC) -I$(VIVANTENN_SDK_INC)/HAL -I$(VIVANTENN_SDK_INC)/ovxlib LIBS += -L$(VIVANTENN_SDK_LIB) -L./ -L$(STD_LOG_INC) LIBS += -lOpenVX -lOpenVXU -lOpenVX -lCLC -lVSC -lGAL -ljpeg -lovxlib -lm LIBS += -lNNArchPerf -lArchModelSw LIBS += -lstdc++ -ldl -lpthread -lgcc_s CFLAGS += $(INCLUDE) -fPIC SRCS=${wildcard *.c} SRCS+=${wildcard *.cpp} OBJS=$(addsuffix .o, $(basename $(SRCS))) .SUFFIXES: .hpp .cpp .c .cpp.o: $(CXX) $(CFLAGS) -std=c++11 -c $< .c.o: $(CC) $(CFLAGS) -c $< all: $(BIN) $(BIN): $(OBJS) $(CC) $(CFLAGS) $(LFLAGS) $(OBJS) -o $@ $(LIBS) rm -rf *.o clean: rm -rf *.o rm -rf $(BIN) $(LIB) rm -rf *~ |
1.2.
...
NN IDE Cross Compile
Environment Preparations
C3V toolchain
...