Documentation Overview

This documentation is intended for all developers using the Horizon J6 computing platform. To help you understand the overall workflow more clearly, we recommend reading the documentation in the following order.

The following sections briefly introduce the content of each section. You can also jump directly to the relevant section based on your current needs.

1. Documentation Overview

This section provides an overview of the relevant sections in the documentation, together with recommended reading paths.

  1. OpenExplorer Overview
SectionDescription
Product IntroductionThis section introduces the overall Open Explorer toolchain and briefly explains the deliverables included in the OE package.
Key ConceptsThis section introduces commonly used concepts and related background knowledge.
  1. Environment Setup
SectionDescription
Pre-installation PreparationThis section introduces the dependencies, environment version requirements, and prerequisites that should be checked before installation so that the development and runtime environments can be set up correctly.
Software Installation GuideThis section introduces the concrete setup steps for both the development environment and the runtime environment.
  1. Quick Start
SectionDescription
ONNX Model Quick StartThis section provide a quick-start example of the complete workflow for an ONNX model, from quantization to deployment on hardware, to help you understand the basic usage process and get started quickly.
PyTorch Model Quick StartThis section, we provide the basic workflow for a PyTorch model, including floating-point model modification, calibration, HBIR export, fixed-point model validation, and deployment on hardware, helping you get started quickly.
  1. Platform Differences

This section helps you first distinguish the differences among J6 platforms in quantization strategy, output precision, input and output handling, and deployment capability. If you are still deciding which quantization path to use, where to start with precision configuration, or how to validate deployment results, it is recommended to read this section first before continuing to the later model compilation and tuning sections.

  1. [Model Quantization and Compilation]
SectionDescription
OverviewThis section provide an overview of two workflows: ONNX model quantization and PyTorch model quantization based on practical usage scenarios, helping you understand the actual process of model quantization and compilation.
PTQ Conversion Principle and ProcessThis section focuses on the ONNX model quantization path. It introduces the overall PTQ workflow, core steps, deployment consistency, common problems and troubleshooting methods, and related appendix content, helping you first complete the standard PTQ workflow and then continue with accuracy and deployment-side analysis.
QAT Conversion IntroductionThis section focuses on the PyTorch model quantization path. It introduces floating-point model adaptation, QConfig configuration, Prepare, Calibration, QAT training, fixed-point model conversion, Deployment Consistency Analysis, accuracy tuning, and common problems, helping you complete quantization and deployment validation step by step in the actual usage order.
Model ModificationThis section provides examples of several common model modification scenarios, together with comparisons of HBIR models before and after modification, to help explain modification methods and precautions.
X86 SimulationThis section introduces how to run model inference on the X86 simulation platform so that you can understand the usage flow on the X86 simulation platform.
  1. Model Deployment
SectionDescription
Board EvaluationThis section explains how to evaluate performance and accuracy on the board, including key metrics and related precautions during evaluation.
Board Resources EvaluationThis section explains how to evaluate board-side resources, including metrics such as BPU usage, bandwidth, and memory occupancy.
Board DeploymentThis section provides guidance for inference application development during board-side deployment, along with C++ runtime examples, to help you understand the main steps and precautions for board deployment.
  1. Model Tuning Guide
SectionDescription
Model Performance Tuning GuideThis section introduces Horizon's recommendations and measures for improving model performance when the current performance does not meet expectations, as well as general guidance for efficient model design on J6 platforms.
Model Accuracy Tuning GuideThis section provides guidance and corresponding examples for accuracy tuning after quantization and compilation of ONNX and PyTorch models.
  1. Unified Computing Platform (UCP)
SectionDescription
OverviewThis section introduces the overall development path on the Horizon platform and how to complete visual processing and deep learning deployment using UCP.
Function Support Comparison ListThis section explains feature differences in the current UCP version across J6 platforms under Linux and QNX.
Vision ProcessingThis section introduces the basic knowledge and interfaces for vision processing, helping you call visual operators and use related hardware acceleration.
High Performance LibraryThis section introduces the basic knowledge and interfaces of the high-performance operator library, which packages a set of commonly used high-performance operators for flexible deployment.
Custom OperatorsThis section introduces the basic knowledge and interfaces for UCP custom operator development, together with reference examples.
End-to-end Object Detection SampleThis section explains how the end-to-end object detection sample runs a detection model on J6 and displays the result.
FAQ and Error CodesThis section provides answers to common questions in heterogeneous programming and explanations of related error codes.
  1. API
SectionDescription
HMCT API ReferenceThis section introduces the HMCT APIs.
HBDK Tool API ReferenceThis section introduces the HBDK tool APIs.
Horizon PyTorch Plugin API ReferenceThis section introduces the Horizon Plugin PyTorch APIs.
UCP API ReferenceThis section introduces the UCP APIs.
  1. Tools Guide
SectionDescription
Quantization Pipeline ToolsThis section introduces the quantization pipeline tools provided by the algorithm toolchain, helping you quickly understand how to use the tools in the quantization pipeline and their basic functions..
QAT Accuracy Tuning ToolThis section introduces the usage and functions of the accuracy tuning tools available when accuracy drops occur during Quantized Awareness Training with Horizon Plugin PyTorch.
Performance Analysis ToolThis section introduces the usage and basic functions of hb_analyzer, which is used to analyze model or perf-file performance.
Model Inference ToolsThis section introduces the usage of hrt_model_exec and hbm_infer, together with common command operations during model inference.
UCP Performance Analysis ToolsThis section introduces how to use ucp_trace and hrt_ucp_monitor.
  1. Samples
SectionDescription
Benchmark of Model PerformanceThis section presents accuracy and performance data of benchmark models on different J6 platforms for quick reference.
Model Deployment Practice Guidance ExamplesThis section uses a public ResNet18 example to explain a full PTQ-based model quantization and board deployment practice in several typical scenarios.
  1. Appendix
SectionDescription
Supported Operator and Constraint ListThis section lists the operators supported by Horizon, together with their types, constraint conditions, and general usage restrictions for reference.
Dataset DownloadThis section provides download links to the datasets used in the sample models.
  1. License Agreement and Third-party Software Vulnerability Notes
SectionDescription
J6 Toolchain License AgreementThis section provides the license agreement. Please read it carefully before using the J6 toolchain.
Third-party Software and License StatementThis section provides related information about third-party software, licenses, and associated notes.
Third-party Software Vulnerability NotesThis section provides notes related to vulnerabilities in third-party software or components.