OpenExplorer Introduction

What is OE

OE is the abbreviation of OpenExplorer, which is an full lifecycle development platform based on Horizon's self-developed computing platform.

It mainly includes three functional modules: model compilation optimization toolset, algorithm warehouse and application development SDK. The application reference solutions developed based on these three functional modules provide case supports for smart driving, smart IoT and other industry solutions.

learn_oe

  1. Model compilation optimization toolset: It focuses on intelligent business scenarios, including a series of software toolsets involved in completing the algorithmic model conversion and compilation process, providing model quantization, optimization, compilation, debugging and other functions.

  2. Algorithm warehouse: It fits the basic algorithmic structure of the current smart driving field, and the key business algorithmic technology points, Horizon provides a wealth of open source best practices, empowering Horizon partners to develop their own smart products faster and more economically.

  3. Application Development SDK: It provides rich basic interfaces and tools to support the deployment of business algorithms on the Journey platform, which can completely support the whole process of customer deployment in simulation and physical environment.

To help you deploy various solutions to a series of Horizon dev boards, we provide a full-volume development package, called OE package, which integrates the development environment deployment, application reference solution sample code, user manuals, etc. After you get the OE package, you can first follow the steps below to understand the OE:

  1. First refer to Release Content for the directory structure of the release package.

  2. Then refer to Environment Deployment for the development environment and runtime environment deployment.

  3. Next, refer to ONNX Model Compile, PyTorch Model Compile and Embedded Application Development to complete the entire process of model conversion and deployment.

For more tutorials on using the OE package, please refer to the instruction manual below. We believe Horizon's OE package can make your development more efficient and easier!

Release Content

package

The package directory contains some base libraries and components for the distribution to run.

  • package.board

    The package.board contains the board-side executables.

    • The hrt_model_exec is a model execution tool that can be used directly on the dev board to evaluate the inference performance of the model and obtain model information, which provides funcitons including model inference infer, model performance analysis perf and viewing model information model_info.

    • The install_linux.sh and install_qnx.sh are installation scripts that can install the hrt tool on the specified development board in one go. You can choose the appropriate script according to the operating system of your development board, after choosing, the system will automatically run the install.sh script to install.

  • package.host

    The package.host folder contains the environment dependencies and tool dependencies for the distribution in the x86 development environment. By executing the script install.sh in this directory, you can install all environment and tool dependencies on the development machine. By executing the script resolve.sh in this directory, you can download the cross-compilation tools and torch etc. dependencies.

samples

The samples contains model_zoo, onnx_ptq, torch_qat and ucp_tutorial.

  • model_zoo: a model library that is used to place the original model and runtime model for the toolchain sample model compilation.

  • onnx_ptq: used to place samples of converting ONNX models into fixed-point models through quantization.

  • torch_qat: used to place the plugin_basic sample of converting pytorch model into fixed-point model through quantization.

  • ucp_tutorial: the UCP samples package, which provides the necessary dependencies for UCP and related samples.

resolve_all.sh

Script for automatically downloading all downloadable dependencies within the OE package.

Running this script will sequentially download the following:

  1. Execute resolve.sh under the package/host path to download the cross-compilation tools and torch etc. dependencies.

  2. Execute resolve_ai_benchmark_ptq.sh under the samples/model_zoo/runtime/ai_benchmark path to download the hbm model used on the board.

  3. Execute resolve_runtime_sample.sh under the samples/model_zoo/runtime/basic_samples path to download the hbm model used on the board for the corresponding sample.

  4. Execute resolve.sh under the samples/ucp_tutorial/dnn/basic_samples/code/ path to run the dependency acquisition script for the basic_samples package.

  5. Execute resolve.sh under the samples/ucp_tutorial/dnn/ai_benchmark/code/ path to run the downloading model performance evaluation dataset script for AI Benchmark sample package.

  6. Execute all the 00_init.sh scripts in the samples/onnx_ptq/examples folder to download the calibration dataset and the original model for the sample.

run_docker.sh

In case the evaluation dataset and the required docker download for the OE package are completed, you can use the command sh run_docker.sh {dataset path} to automatically mount the OE package and start the docker.