OE Document Introduction

This section provides a comprehensive guide to the development process for all developers using the Horizon J6 processor.

To give you a full understanding of the overall process, we recommend that you first go through this section, which briefly describes all the sub-sections.

1. OE Document Introduction

This section provides you with an overview of the contents of relevant sections and content jump links, as well as the recommended reading order of the document.

  1. OpenExplorer Overview
SectionSection Introduction
Product IntroductionThis section provides you the overview of the entire Open Explorer toolchain and briefly introduces the content of the deliverables in the OE package.
Key ConceptsThis section provides you with some common key concepts and commonly used background knowledge.
  1. Environment Deployment
SectionSection Introduction
Pre-installation PreparationThis section introduces some dependencies, environment version requirements and other prerequisites that need to be ensured before environment deployment, so as to carry out the correct installation and deployment of the development environment and runtime.
Software Installation GuideThis section introduces the specific environment deployment steps and content for the development environment and runtime environment.
  1. Quick Start

This section provides a quick start example of algorithm model quantization + on board using the PTQ scheme to help you understand the basic process of the post-training quantization (PTQ) and on board deployment of the floating-point conversion toolchain.

  1. Model Quantization and Compilation
SectionSection Introduction
Post-training Quantization(PTQ)In this section, we will provide you with a detailed and comprehensive explanation of the entire post-training quantization (PTQ) process from aspects including the basic PTQ conversion workflow, consistency analysis, introduction to the example package, common issues and general solutions for common abnormal failure phenomena, parameter descriptions related to data normalization processing, and introductions to various transformers used in image scaling and cropping.
Quantized Awareness Training(QAT)In this section, we will provide you with a detailed and comprehensive explanation of the entire quantized awareness training (QAT) process from aspects including the basic QAT conversion workflow, consistency analysis, operator fusion, introduction to the principles of Eager and FX Quantization, common issues, and general solutions for common abnormal failure phenomena.
Model ModificationIn this section, we provide you with sample code for several common model modification scenarios, as well as comparative examples of HBIR models before and after modification, to introduce the methods and precautions for model modification to you.
X86 SimulationIn this section, we provide you with relevant introductions such as the methods of performing model inference on the X86 simulation platform, to help you understand the usage process on the X86 simulation platform.
  1. Model Deployment
SectionSection Introduction
Board EvaluationIn this section, we introduce to you how to conduct performance and accuracy evaluation on the board, covering the introduction of evaluation-related metrics and the relevant precautions during evaluation.
Board Resources EvaluationIn this section, we introduce to you how to conduct on-board resource evaluation, covering the assessment of metrics such as BPU, bandwidth, and memory occupancy rate.
Board DeploymentIn this section, we provide you with guidance on the development of inference applications for model deployment on the board, as well as illustrations of C++ examples for on-board operation, to help you understand the relevant steps and precautions for model deployment on the board.
  1. Model Tuning Guide
SectionSection Introduction
Model Performance Tuning GuideIn this section, we introduce to you Horizon's suggestions and measures for improving model performance if the performance does not meet your expectations after performance analysis, as well as Horizon's general guiding suggestions when you need to carry out efficient model design on the J6 computing platform.
Model Accuracy Tuning GuideIn this section, we provide you with precision tuning guidance after model quantization and compilation under the two paths of PTQ and QAT, as well as corresponding precision tuning examples.
  1. Reference Algorithm
SectionSection Introduction
OverviewIn this section, we bring you a brief introduction to Horizon's reference algorithms.
FrameworkIn this section, we introduce to you the module framework of Horizon Torch Sample and a brief overview of its execution engine.
Model List and Performance BenchmarksIn this section, we list the model performance metric data supported by the reference algorithm package and the introduction of relevant metrics.
Tools GuideIn this section, we provide you with usage instructions for the tools included in the Horizon Torch Sample package.
Quantized TrainingIn this section, we provide you with relevant introductions to the operations required for Horizon Torch Sample during quantization training.
ExamplesIn this section, we present to you a detailed introduction to the training of samples offered by Horizon Torch Sample.
FAQIn this section, we provide you with common issues encountered when using Horizon Torch Sample and general solutions and suggestions.
  1. Unify Compute Platform(UCP)
SectionSection Introduction
OverviewIn this section, we provide a general overview of application development on the Horizon platform, as well as the methods and steps for completing visual processing and deep learning model deployment using the unified computing platform.
Function Support Comparison ListIn this section, we provide an introduction to the differences in supported features of the J6 series computing platform in the current version of UCP under the Linux and QNX operating systems.
Vision ProcessIn this section, we introduce the basic knowledge related to visual processing and interface descriptions, which enable the calling of visual operators and acceleration using relevant hardware.
High Performance LibraryIn this section, we introduce the basic knowledge and interface descriptions of the high-performance operator library, which encapsulates a number of commonly used high-performance operators. You can achieve flexible deployment of operator functions by calling the corresponding interfaces in the HPL module.
UCP Custom OperatorIn this section, we introduce the basic knowledge and interface descriptions of UCP custom operator development, along with encapsulated reference examples.
Object Detection Full Process SampleIn this section, we introduce the full-process example of object detection, including how to run a detection model on the J6 and display the results.
FAQ and Error CodeIn this section, we provide answers to some common questions encountered during heterogeneous programming as well as explanations of error codes.
  1. API
SectionSection Introduction
HMCT API ReferenceIn this section, we provide an introduction to the API interfaces of the HMCT.
HBDK Tool API ReferenceIn this section, we provide an introduction to the API interfaces of the HBDK tool.
Horizon Pytorch Plugin API ReferenceIn this section, we provide an introduction to the API interfaces of the Horizon Plugin Pytorch.
UCP API ReferenceIn this section, we provide an introduction to the API interfaces of the UCP.
  1. Tools Guide
SectionSection Introduction
PTQ Conversion ToolsIn this section, we introduce the tools in the PTQ toolkit provided by the algorithm toolchain, helping you quickly understand the usage and basic functions of the tools in the PTQ conversion process.
QAT Accuracy Tuning ToolIn this section, we introduce the usage and functions of the accuracy tuning tools available when encountering accuracy drop issues during quantized awareness training using Horizon Plugin PyTorch.
Performance Analysis ToolIn this section, we introduce the usage and basic functions of hb_analyzer, a tool we provide for performance analysis of models or perf files.
Model Inference ToolsIn this section, we introduce the usage of the hrt_model_exec and hbm_infer tools, along with a brief introduction to common command operations during model inference.
UCP Performance Analysis ToolsIn this section, we introduce the usage of the UCP trace and hrt_ucp_monitor tools.
  1. Samples
SectionSection Introduction
Benchmark of Model PerformanceIn this section, we present the accuracy and performance data related to Benchmark models on different J6 series computing platforms for your clear reference.
Model Deployment Practice Guidance ExamplesIn this section, we use the public version of ResNet18 as an example to illustrate typical scenarios in the PTQ pathway. This will help you understand the full process of an algorithmic model using the PTQ scheme quantization + on-board operation deployment practice.
  1. Appendix
SectionSection Introduction
Toolchain Operator Support Constraint ListThis section provides a list of operators supported by Horizon, as well as their types, constraints, and general usage restrictions.
Dataset DownloadThis section provide you with download links to the datasets that will be used when using the sample models for your reference.
  1. License Agreement and Third-party Software Vulnerability Description
SectionSection Introduction
J6 Algorithm Toolchain License AgreementThis section provides the license Agreement for our toolkit. Please read it carefully before using the J6 toolchain.
Third-party Software and License StatementThis section provides information about third-party software, licensing, and related specifications.
Third-party Software Vulnerability DescriptionThis section provides instructions regarding vulnerability related to third-party software/components.