基于Zynq的光流法软硬件协同设计与实现--3.并行性分析
- UID
- 1023229
- 来自
- 中国
|
基于Zynq的光流法软硬件协同设计与实现--3.并行性分析
在分析了各个模块及整个光流算法的软件执行时间,有必要从任务并行、数据并行和流水线并行给出它们的并行性分析,进行软硬件协同划分。3.1 任务并行
任务并行就是把处理数据粗粒度地划分为各个模块,每一个模块的相应数据都能够独立处理。在理想状况下,在有足够硬件资源的情况下,并行化的HS工作流程如图3所示。
图3 任务并行化的HS光流计算 具体地说,两张要处理的图片(img1和img2)经过两个并发进行的平滑后得到平滑后的图片(simg1和simg2);然后通过水平、垂直和时间梯度的三个任务的并发计算同时得到Ex、Ey和Et;然后通过五个矩阵乘法器得到模型运动的信息(J11、J12、J13、J22和J23);最后再送给迭代模块。
3.2 数据并行
数据并行就是处理的数据进行细粒度地划分,也就是具体到模块内部。预处理阶段(P1)和梯度计算阶段(P2)通过卷积来运算,运动模型构造阶段(P3)通过简单的矩阵相乘,这三个模块的才做很通用,没有太大的数据相关性,因此特别适合做数据并行。然而,迭代阶段(P5)的数据并行性不是很好,它的数据相关性很大,在硬件设计时,如何消除这一数据相关性是关键。
3.3 流水线并行
流水线并行特别适合FPGA处理,在HS光流算法中,如何衔接各个模型间的计算节点,特别是迭代部分的结算节点成了制约流水线关键的一个因素。
图4 光流场计算的模块间的流水线 如图4所示,P4模块需要迭代100次,然而前面的P1、P2、P3模块处理完成的数据如果P4来不及处理的哇,就会造成大量的数据丢失,因此需要存到外部空间,才能让数据不会丢失,这就制约了流水线的性能,是整个流水系统陷入了恶性循环中。
来源:stepzhibin的专栏 |
|
|
|
|
|