The hrt_model_exec Tool Introduction

The hrt_model_exec is a model execution tool that can evaluate the inference performance of the model and get the model information directly on the development board.

On one hand, it allows you to get a realistic understanding of the model's real performance; On the other hand, it also helps you to learn the speed limit that the model can achieve, which is useful information in application tuning.

The hrt_model_exec tool source code is located in the samples/ucp_tutorial/tools/hrt_model_exec path of the horizon_s100_open_explorer publication. The structure is as follows:

├── include # Header file ├── src # Source code ├── build.sh # Compile script ├── build_x86.sh # Compile to produce x86 tools ├── build_aarch64.sh # Compile to produce aarch64 tools for the Linux system ├── build_qnx.sh # Compile to produce aarch64 tools for the QNX system ├── CMakeLists.txt ├── README.md ├── script │ └── run_hrt_model_exec.sh # The original aarch64 tool running script, which will be downloaded to the output_shared_s100_aarch64/script directory after compilation. └── script_x86 └── run_hrt_model_exec.sh # The original x86 tool running script, which will be downloaded to the output_shared_S100_x86/script_x86 directory after compilation.

Running Process

Building Method

There is a pre-configured compilation script build.sh in the ucp_tutorial/tools/hrt_model_exec directory. The options -a x86, -a aarch64-qnx and -a aarch64 support three compilation modes respectively. You can use this script and specify the compilation options for compilation. In addition, the directory also contains three compilation scripts, build_aarch64.sh, build_qnx.sh and build_x86.sh, which correspond to three compilation options respectively. Compiling with these scripts is equivalent to using the build.sh script and specifying the compilation options.

# Build board-side hrt_model_exec tools for linux system bash -ex build_aarch64.sh # Build x86-side hrt_model_exec tools bash -ex build_x86.sh # Build board-side hrt_model_exec tools for qnx system bash -ex build_qnx.sh

Execute the Method

Take Linux environment as an example, after building board-side hrt_model_exec tools, the output_shared_S100_aarch64 folder will be generated. You can use this tool by copying the folder to the board environment and executing output_shared_S100_aarch64/script/run_hrt_model_exec.sh.

After building x86-side hrt_model_exec tools, the output_shared_S100_x86 folder will be generated. You can use this tool on the x86 environment and executing output_shared_S100_x86/script_x86/run_hrt_model_exec.sh.

The run_hrt_model_exec.sh script is divided into two parts: setting environment variables and getting model information and inferring the model.

# Set environment variables # arch represents the architecture type, aarch64 or x86 arch=aarch64 bin=../$arch/bin/hrt_model_exec lib=../$arch/lib/ export LD_LIBRARY_PATH=${lib}:${LD_LIBRARY_PATH} # Get model information ${bin} model_info --model_file=xxx.hbm # Infer the model ${bin} infer --model_file=xxx.hbm --input_file=xxx.bin # Get model performance ${bin} perf --model_file=xxx.hbm --frame_count=200
Note

Before running, you need to modify the corresponding parameters of run_hrt_model_exec.sh to ensure that the model and input files are correct. You can also use other parameters flexibly to use more functions.

Usage Scenarios

The hrt_model_exec tool supports three usage scenarios: view the model information, model inference, model performance evaluation.