Overview

General Introduction

  • What is UCP?

    The Unify Compute Platform(Unify Compute Platform, hereafter referred to UCP) defines a unified set of heterogeneous programming interfaces to enable calls to all resources on the computing platform. UCP abstracts and encapsulates the functional hardware on the SOC, and externally provides function-based APIs for creating corresponding UCP tasks , and supports the setting of a hardware backend to be submitted to the UCP scheduler, which can complete the unified scheduling of tasks on the Soc based on hardware resources.

  • UCP scenarios:

    Deep Learning Model Inference: deep learning model inference tasks can be accomplished, and model parsing and hardware deployment are completed within UCP.

Note

This section is used to guide you on how to use the UCP for hardware deployment of the model. Knowledge, experience, and skills in basic embedded development can lead to a better understanding of the contents of this section.

Operating Modes

The UCP framework supports two main operating modes: Direct Mode and Relay Mode. The QNX operating system and x86 simulation does not support Relay mode.

By default, the system operates in Direct Mode. In Relay Mode, UCP enables unified scheduling of multi-process tasks. To use Relay Mode, you must first start the ucp_service, which is located at deps_aarch64/ucp/bin/service/. You also need to enable Relay Mode by setting the environment variable HB_UCP_ENABLE_RELAY_MODE=true, allowing user processes to communicate via the relay service. Regardless of whether Direct Mode or Relay Mode is used, the UCP interface calls remain consistent, without impacting the programming logic. You can flexibly choose between these two modes based on the system’s performance and flexibility requirements.

Backend Instruction

The backend refers to the back-end computing hardware for UCP task execution. The current backends supported by UCP include BPU, DSP, GDC, STITCH, JPU, VPU(Video Process Unit), PYRAMID, ISP.

BackendDescription
BPUBrain Process Unit, the Horizon Neural Network computational unit.

x86 Simulation Description

In addition to the development board, UCP also provides the same development support in an x86 simulation environment as it does on the board.

Function Description

Similar to the development board, UCP provides the same visual processing, model inference, and high-performance computing capabilities in an x86 architecture through simulation. All samples and interface code can be equivalently used in the simulation environment. You can develop and debug code in the x86 environment, gaining immediate feedback during the development process. This allows you to identify and resolve issues early, improving development efficiency and code quality, and ensuring seamless migration of the code to run on SoC hardware.

Environment Description

The UCP simulation uses the compiler environment provided by the Docker image.

Performance Description

The performance of the x86 simulation environment is usually lower than that of the actual hardware.