模块架构

VP模块架构

image

通过VP模块中的API创建算子的任务句柄,每个算子接口都有至少一种硬件实现(如remap算子可在DSP或GDC硬件上执行)。 创建好任务句柄后,可以通过设置调度参数指定后端、任务优先级,设备ID和自定义ID,从而将任务提交到对应的处理单元。 提交任务后,需要调用API等待任务完成。任务完成后,使用API释放任务句柄和相关资源,以确保系统资源得到有效管理和释放。 在从任务创建到任务提交、释放的过程中,UCP Service层对各个环节均提供接口及功能支持。

算子执行流程

此处以Rotate算子异步执行为例,展示算子实际的调用流程,其他算子的使用方法基本与其流程一致。

image

注解

虚线框表示该步骤为非必须步骤,可通过复用参数、使用默认参数等方式略过。

1.准备输入输出数据:即申请图片的内存空间并构建相关的描述信息。

2.创建算子任务:此步骤为直接调用算子任务接口,同时传入算子执行所需的参数,执行完成后输出UCP任务句柄。

3.提交任务:通过传入调度参数将算子任务提交到不同处理核心,任务提交支持指定backend,如不指定则系统会自动适配backend。

4.指定接口等待任务结束:任务结束时,系统会根据不同的执行状态返回不同的返回值,此时,您可根据返回值来查看任务执行结果。

5.销毁任务:任务成功执行后需要销毁任务,并释放申请的内存。