主要内容

视频处理系统的多核仿真

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

简介

数据流执行域允许您在计算密集型系统的设计中使用多个核心。这个例子展示了数据流作为子系统的执行域如何提高模型的仿真性能。要了解有关数据流和如何使用多线程运行Simulink模型的更多信息,请参见万博1manbetx使用Dataflow域的多核执行(DSP系统工具箱)

视频中的对象计数

这个例子展示了如何使用基本形态运算符从视频流中提取信息。在这种情况下,模型计算每个视频帧中的订书钉数量。该模型使用Top-hat块去除不均匀光照,然后使用Autothreshold块将其转换为二值图像。然后,Blob Analysis块用于计算订书钉的数量并计算每个订书钉的质心。绘制标记和插入文本块用于标记订书钉,并写入视频帧上发现的订书钉的数量。

设置数据流子系统

本例使用Simulink中的数据流域来利用桌面上的多个核心来提高仿真性能。万博1manbetx的该模型中数据流子系统的参数设置为数据流.您可以通过选择子系统,然后访问Property Inspector来查看这一点。若要访问属性检查器,请在“Simulink工具带”中,在“建模”选项卡上,万博1manbetx在“设计图库”中选择“属性检查器”,或在“仿真”选项卡上,在“准备图库”上,选择“属性检查器”。

数据流域自动将您的模型划分为多个线程,以获得更好的性能。一旦你设置了参数数据流,你可以使用多核TAB分析来分析您的模型以获得更好的性能。的多核当模型中存在数据流域时,可以在工具条中使用TAB。了解更多关于多核选项卡,查看为数据流执行多核分析(DSP系统工具箱)

数据流子系统并发性分析

对于本例,多核TAB模式设置为仿真分析用于仿真性能分析。

建议优化模型设置以获得最佳仿真性能。要接受所建议的模型设置,就多核选项卡上,单击优化.的下拉菜单优化按钮单独更改设置。在这个例子中,模型设置已经是最优的了。

多核选项卡,单击运行分析按钮,启动数据流域的模拟性能分析。一旦分析完成,“分析报告和建议”窗口将显示数据流子系统在模拟过程中使用了多少线程。

在分析模型之后,Analysis Report and recommendations窗口显示了一个线程,因为模型中块之间的数据依赖关系阻止了块并发执行。通过流水线化依赖于数据的块,数据流子系统可以提高并发性以获得更高的数据吞吐量。“分析报告和建议”窗口显示了建议增加并发性的管道延迟数量。建议的延迟值被计算出来以提供最佳性能。

下图显示了分析报告和建议窗口,其中建议数据流子系统的延迟时间为2。

单击接受按钮,为数据流子系统使用推荐的延迟时间。此值也可以直接在属性检查器中输入延迟参数。万博1manbetxSimulink显示了使用的延迟参数值美元Z ^ {n} $数据流子系统输出端口上的标记。

分析报告和建议窗口现在显示线程数为2,这意味着数据流子系统内的块使用2个线程并行模拟。突出的线程方法中所示的基于线程分配的颜色突出显示块线程突出显示图例显示管道延迟显示在使用的数据流子系统中插入管道延迟的位置美元Z ^ {n} $标签。

多核仿真性能

我们通过比较使用数据流和不使用数据流运行模型所花费的执行时间来衡量使用数据流域的性能改进。执行时间是使用sim命令测量的,该命令返回模型的模拟执行时间。在测量执行时间时,Video Viewer块被注释以测量主要用于数据流子系统的时间。这些数据和分析是在一台搭载英特尔至强®CPU W-2133 @ 3.6 GHz 6核12线程处理器的Windows台式电脑上发布的。

多线程模型的仿真执行时间= 6.86s单线程模型的仿真执行时间= 13.34s数据流的实际加速:1.9倍

总结

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