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.
- Product Introduction
| Section | Section Introduction |
| OpenExplorer Introduction | This section introduces OpenExplorer, as well as a brief overview of the contents in the release package. |
| Toolchain Overview | This section briefly describes the toolchain and the overall usage process. |
This section provides you with some common key concepts and commonly used background knowledge.
This section describes the environment deployment that needs to be performed in advance in the development and runtime environments.
- Quick Start
| Section | Section Introduction |
| PTQ and QAT Introduction | This section briefly introduces the two quantification methods: PTQ and QAT. |
| Algorithm Model PTQ + On-board Deployment Quick Start | This section provides a quick start sample 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. |
| Algorithm Model QAT + Deployment Quick Start | This section provides a quick start of algorithm model quantization + deployment using the QAT scheme to help you understand the basic process of the quantized awareness training (QAT) and deployment. |
- Post-training Quantization (PTQ)
| Section | Section Introduction |
| PTQ Conversion Principle And Process | This section introduces you to the overall process of PTQ model conversion and details of the whole process. |
| PTQ Conversion Tools Guide | This section provides you with a detailed introduction to the PTQ toolkit provided by algorithm toolchain. |
| PTQ Conversion Steps | This section provides instructions on how to use it from model preparation, model checking, prepare calibration data, model quantization and compilation, performance analysis, accuracy analysis, accuracy tune and so on. |
| PTQ Conversion Samples Guide | This section introduces conversion sample package of the horizon_model_convert_sample model and its usage instructions. Provide a quick sample of converting a floating-point model to a fixed-point model using the floating-point model conversion toolchain, including a single inference and accuracy verification sample. |
| FAQ And Common Failure Resolutions | This section provides you with answers to some common questions about the PTQ conversion process as well as generalized suggestions for solving common trouble-shooting phenomena. |
| Appendix | This section introduces the descriptions and analysis of data normalization related parameters and related calculation formulas, as well as the concept of each transformer used in image scaling and cropping, parameter descriptions and examples, and general suggestions for solving common abnormalities and failures. |
- Quantized Awareness Training (QAT)
| Section | Section Introduction |
| Introduction | This section briefly introduce you to horizon_plugin_pytorch, a quantized perceptual training tool developed by Horizon based on PyTorch. |
| Terminology Conventions | This section introduces you to some of the terminology that will be used in quantized awareness training. |
| Environmental Dependence | This section introduces you to the environment-dependent requirements for quantized awareness training. |
| Algorithm Model QAT + Deployment Quick Start | This section provides a quick start of algorithm model quantization + deployment using the QAT scheme to help you understand the basic process of the quantized awareness training (QAT) and deployment. |
| Tutorial | This section provides you with instructions to guide you through the Quantized Awareness Training development process. |
| Advanced Tutorial | This section provides you with an introduction to Eager Mode, the principles of FX Quantization, and operator fusion to help you further your understanding of quantized awareness training. |
| API Reference | This section provides an introduction to the API interface for QAT. |
| FAQ and Commnon Failure Resolutions | This section provides you with answers to some common questions about the QAT as well as generalized suggestions for solving common trouble-shooting phenomena. |
- Model Performance Tuning Guide
| Section | Section Introduction |
| Model Performance Optimization | This section provides you with Horizon's recommendations and measures for improving the performance of a model when a performance analysis is performed and if the performance does not meet your expectations. |
| Efficient Model Design Advice | As an advanced content, this section includes general guides and recommendations for you to design efficient models on the J6 processor. |
- Unify Compute Platform (UCP)
| Section | Section Introduction |
| Overview | This section introduces you to the general introduction of application development in the Horizon platform, the methods to complete the deployment of vision processing and deep learning models using the Unify Compute Platform. |
| Vision Process | This section introduces you to the basics and interface introduction related to vision processing, which allows you to complete the invocation of visual operator and accelerate it using the relevant hardware. |
| Model Inference Development | This section introduces you to the basics of deploying deep learning models, the introduction to interfaces, the introduction to samples, Benchmark usage, and the introduction to end-side tools on the J6 platform. |
| High Performance Library | This section introduces you to the basics and interface introduction related to high performance library, which encapsulates some common high-performance operator implementations, and you can deploy the operator functions flexibility by calling the corresponding interfaces in the HPL module. |
| UCP Custom Operator | This section introduces the basic knowledge and interface of UCP custom operator development and encapsulates some reference samples. |
| Object Detection Full Process Sample | This section introduces how to run a detection model on J6 and display the results. |
| UCP Common API Introduction | This section introduces you to the data structures and interfaces related to task processing of the Unify Compute Platform. |
| UCP Performance Analysis Tools | This section introduces you to the use of performance analysis tools in the Unify Compute Platform. |
| FAQ and Error Code | This section provides you with answers to some common questions during heterogeneous programming as well as error code description. |
| Function Support Comparison List | This section provides an introduction to the differences in supported features of the J6 series computing platforms in the current version of UCP under the Linux and QNX operating systems. |
- Model Deployment Practice Guidance
| Section | Section Introduction |
| Model Deployment Principle and Process | This section integrates the forward content to introduce you to the whole process from preparation to deployment of the model, which is interspersed with some introduction to the principles and typical scenarios of the common sample code, so that you can easily understand the process of model deployment and some of the necessary steps. |
| Model Deployment Practice Guidance Examples | 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. |
- Advanced Contents
| Section | Section Introduction |
| Horizon Torch Samples | As an advanced content, this section introduces Horizon Torch Samples, which is based on Pytorch deep-learning training tool, by describing their overview, framework, tutorials, examples, ModelZoo and API reference. |
| HMCT API Reference | As an advanced content, this section provides an introduction to the API interface for HMCT. |
| HBDK Tool API Reference | As an advanced content, this section provides an introduction to the API interface for HBDK tools. |
- Benchmark of Model Performance
| Section | Section Introduction |
| J6P/H Benchmark of Model Performance | This section presents the accuracy and performance data related to Benchmark models on the J6P/H platform, for your clear reference. |
| J6E/M Benchmark of Model Performance | This section presents the accuracy and performance data related to Benchmark models on the J6E/M platform, for your clear reference. |
| J6B Benchmark of Model Performance | This section presents the accuracy and performance data related to Benchmark models on the J6B platform, for your clear reference. |
- Appendix
| Section | Section Introduction |
| Toolchain Operator Support Constraint List | This section provides a list of operators supported by Horizon, as well as their types, constraints, and general usage restrictions. |
| HBIR Operator Definition | This section provides you with an explanation of the HBIR operator definition and general usage restrictions on the Horizon Computing Platform. |
| Dataset Download | This section provide you with download links to the datasets that will be used when using the sample models for your reference. |
| Common Abbreviations | This section introduces some common abbreviations and their full names and meanings in this document. |
| Community Quantity Articles | This section of the content, through the introduction of the algorithmic toolchain of some high-quality development articles, to provide you with some additional introduction to the algorithmic toolchain, convenient for you to find information and content learning. |
- License Agreement and Third-party Software Vulnerability Description
| Section | Section Introduction |
| J6 Algorithm Toolchain License Agreement | This section provides the license Agreement for our toolkit. Please read it carefully before using the J6 toolchain. |
| Third-Party Software and License Statement | This section provides information about third-party software, licensing, and related specifications. |
| Third-party Software Vulnerability Description | This section provides instructions regarding vulnerability related to third-party software/components. |
