主要内容

视频处理系统的多核仿真

这个例子展示了如何在Simulink®中使用数据流执行域在多核上运行一个视频处理系统。金宝app

介绍

Dataflow execution domain允许您在计算密集型系统的设计中使用多个核心。此示例显示Dataflow作为子系统的执行域如何提高模型的模拟性能。要了解有关Dataflow以及如何使用多线程运行Simulink模型的更多信息,请参阅金宝app使用数据流域的多核执行(DSP系统工具箱)

视频中的对象计数

此示例演示如何使用基本形态学操作符从视频流中提取信息。在这种情况下,模型统计每个视频帧中的订书钉数量。该模型使用顶帽块去除不均匀照明,然后使用自动阈值块将其转换为二值图像。然后使用Blob分析块计算钉数并计算每个钉的质心。绘制标记和插入文本块用于标记U形钉并写入视频帧上找到的U形钉数量。

设置数据流子系统

本例使用Simulink中的dataflow域来利用桌面的多核来提高仿真性金宝app能。该模型中Dataflow子系统的Domain参数设置为数据流.您可以通过选择子系统然后进行选择来查看这一点视图>属性检查器. 数据流域会自动对模型进行分区,并使用多个线程模拟系统,以获得更好的模拟性能。将域参数设置为Dataflow后,可以使用Dataflow Simulation Assistant分析模型以获得更好的性能。您可以通过单击打开Dataflow Simulation Assistant数据流助手按钮下方的自动帧尺寸计算参数。

数据流子系统的并发性分析

Dataflow Simulation Assistant建议更改模型设置以获得最佳模拟性能。要接受建议的模型设置,请单击旁边的模拟性能的建议模型设置点击全部接受. 或者,您可以展开该部分以单独更改设置。在本例中,模型设置已经是最佳的。在Dataflow Simulation Assistant中,单击分析按钮开始分析数据流域以获得模拟性能。分析完成后,Dataflow Simulation Assistant将显示Dataflow子系统在模拟期间将使用多少线程。

在分析模型之后,助手显示一个线程,因为模型中块之间的数据依赖防止块并发执行。通过对数据依赖块进行流水线操作,Dataflow子系统可以提高并发性以获得更高的数据吞吐量。数据流模拟助手将推荐的管道延迟数显示为“建议延迟”。计算建议的延迟值以获得最佳性能。

下图显示了Dataflow Simulation Assistant,其中Dataflow子系统当前指定的延迟值为零,系统的建议延迟为2。

点击接受旁边的按钮建议延迟在Dataflow Simulation Assistant中,使用数据流子系统的建议延迟。也可以直接在属性检查器中为“延迟”参数输入此值。Simulink使用以下命令显示延迟参数值:金宝app美元Z ^ {n} $数据流子系统输出端口上的标记。

Dataflow Simulation Assistant现在将线程数显示为2,这意味着Dataflow子系统内的块使用2个线程并行模拟。

多核仿真性能

我们通过比较使用和不使用数据流时运行模型所花费的时间来衡量使用数据流域的性能改进。执行时间使用sim命令测量,它返回模型的仿真执行时间。在测量执行时间时,将注释Video Viewer块,以主要测量Dataflow子系统所花费的时间。这些数据和分析是在一台Windows桌面电脑上发布的,该电脑使用Intel®Xeon®CPU W-2133 @ 3.6 GHz 6 Cores 12 Threads处理器。

多线程模型的模拟执行时间=8.31s单线程模型的模拟执行时间=12.68s数据流的实际加速比:1.5x

总结

这个例子展示了多线程如何使用数据流域在桌面使用多个核的视频处理模型中提高性能。