Module Architecture

HPL Module Architecture

HPL1Architecture

The task handles for the operators are created through the API in the HPL 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.

Operator Execution Process

The FFT_1D 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.

HPL3Flow

Note

The dashed box indicates that the step is non-required, which can be omitted by reusing parameters, using default parameters, etc.

  1. Prepare the input and output data: that is applying memory for the data and constructing the associated description.

  2. 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.

  3. 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.

  4. 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 execution status. At this point, you can view the results of the task execution based on the return value.

  5. Destroy the task: after the successful execution of the task, you need to destroy the task and free the applied memory.