
The task handles for the operators are created through the API in the VP module, and each operator interface has at least one hardware implementation, such that the fft operator can be executed on DSP hardware and the corresponding backend includes the DSP in the UCP. After the task handle has been created, you can be deploy the corresponding processing unit by specifying the backend, execution mode, and other parameters through the scheduling parameters. In the entire process from task creation to task committing and releasing, the UCP service layer provides interfaces and functional support for each step.
The Rotate operator is used here as an example to show the actual calling method and flow of the operator, and the usage of other operators is basically the same as its flow.

The dashed box indicates that the step is non-required, which can be omitted by reusing parameters, using default parameters, etc.
Prepare the input and output data: that is applying memory for the picture and constructing the associated description.
Create an operator task: this step calls the operator task interface directly, while pass the parameters required for the execution of the operator, the UCP task handle will be output after the execution is completed.
Commit task: commit operator tasks to different processing cores by passing in scheduling parameters, task committing supports specifying the backend, if you do not specify the backend, the system will automatically adapt.
Specify the interface to wait for the end of the task: at the end of the task, the system will return different return values according to the different execution status, at this time, you can check the result of the task execution according to the return value.
Destroy the task: after the successful execution of the task, you need to destroy the task and free the applied memory.