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.
This 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.
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.
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.
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.
In 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.
In 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.
In 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.
In 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.
In 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.
In 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.
In 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.
In 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.
In 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.
In 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.
In 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.
In this section, we introduce the basic knowledge and interface descriptions of UCP custom operator development, along with encapsulated reference examples.
In 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.
In 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.
In 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.
In this section, we present the accuracy and performance data related to Benchmark models on different J6 series computing platforms for your clear reference.
In 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.