VP模块在以NN为中心的计算方案中,主要作用于模型的前后处理环节。在地平线统一架构中,多种硬件均已搭载了图像处理的算子,而VP模块将图像处理相关的硬件调用进行了封装, 通过设置backend来选择不同的硬件方案(若不指定backend,UCP会自动适配负载更低的处理单元),从而平衡开发板负载,充分对开发板算力进行挖掘, 规避了不同硬件调用区别带来的不便,您可更多地关注软件功能。其功能架构如下图所示:
上述架构图中,应用通过VP模块提供的算子的任务构造函数,如hbVPResize、hbVPRotate等,生成对应算子的任务句柄。 UCP提供了包含任务调度、会话管理、引擎管理等模块的Service,在对应算子的任务句柄生成后,通过UCP任务调度接口将算子任务提交到任务队列,分配到不同的底层硬件,实现算子的功能逻辑。 最底层为不同处理单元中封装实现的算子功能,例如remap算子在DSP与GDC中都有实现,此时VP中的remap算子就可以在这两种硬件上灵活部署。
在阅读本章节前,请先明确如下基础概念,相关内容在下文可能会多次被提及: