为数据流执行多核分析
将模型中的子系统配置为使用数据流执行域时,将多核选项卡在Simulink上被激活万博1manbetx®将来发布。该选项卡将数据流中利用的多核分析技术整合到增量和迭代工作流中。
控件上的控件多核Tab,您可以:
使用内部Simulink启发式方法估计块的相对成本。万博1manbetx
配置文件数据流多核模拟。
通过使用软件在环(SIL)或处理器在环(PIL)分析来模拟模型,测量数据流子系统内部块的平均执行时间(成本)。这个功能需要一个嵌入式编码器®许可证。
手动覆盖块成本值。
提供分析约束,例如最大线程数和线程阈值。
运行分析以生成块到线程的分配并可视化分析结果。
这个图表说明了多核分析的步骤。在您为模型中的子系统指定数据流执行域之后,您可以选择成本计算方法、覆盖块成本、指定分析约束、运行分析并检查结果。
选择成本计算方法
在多核选项卡,在模式节中,可以选择成本计算方法为仿真分析,成本估算,或银/公益诉讼分析.单个块的成本将自动确定,并用于多核分析,在多个CPU核上平均分配计算负载。
仿真分析
使用仿真分析:
配置文件数据流多核模拟。
显示模拟多核分析数据,包括成本数据、延迟建议、线程数、线程高亮显示和管道延迟注释。
当仿真分析时,则剖面模拟按钮将被禁用运行分析按钮已启用。
执行模拟概要分析时,请使用优化按钮,用于优化模拟性能的设置。按钮只启用仿真分析选择。
成本估算
使用成本估算:
无需运行模拟或生成代码即可进行快速分析。
模型未完全实现时的初步分析。在这种情况下,您可以修改评估的结果,以匹配最终实现的预期成本值。
当你点击估计成本,成本编辑器显示模型中每个块的估计执行成本,而不模拟它。
银/公益诉讼分析
使用软件在环(SIL)或处理器在环(PIL)分析方法(需要嵌入式编码器许可证):
使用生成的代码获得在主机上测量的准确成本值。生成的代码最接近将部署在硬件上的代码。
测量实际目标硬件上的成本值,以便在部署最终代码时最大限度地利用内核。
SIL/PIL剖析通过使用SIL/PIL模拟模型来度量数据流子系统中块的平均执行时间(成本)。
使用设置配置C/ c++代码生成和硬件实现设置。
使用停止时间指定测量成本的时间。
使用列表选择
Software-in-the-Loop(银)
或Processor-in-the-Loop(公益诉讼)
设置。使用配置文件测量与指定设置的块相关的成本。
这个例子显示了模型中突出显示的块及其成本。注意,当您执行SIL/PIL分析时,Cost Editor显示了已分析的成本值的单位。
手动更改块成本
在成本估算而且银/公益诉讼分析模式下,您可以手动更改块成本值,以了解它们对多核行为的影响。属性要覆盖块代价,请清除汽车属性中的值成本列。
覆盖块成本值允许您对自定义成本执行分析。
费用是不可编辑的仿真分析模式。
指定分析约束并运行分析
接下来,设置约束并运行多核分析。在分析部分:
使用最大线程数指定分析产生的最大线程数。默认情况下,该工具自动尝试从硬件设置确定目标处理器的核数,并将其作为最大线程数。如果该工具无法确定准确的值,它将使用主机平台上的内核数作为最大线程数。
指定多线程阈值为子系统的总成本(以微秒为单位)设置最小值,工具将为此应用多线程。如果总成本低于阈值,工具将不会对子系统进行分区。默认情况下,该工具使用一个标称值25微秒作为阈值。
点击运行分析根据您的配置执行分析。
审查结果
使用手册中提供的工具审查结果部分以可视化和理解模型的多核行为。
突出显示和查看线程
选择突出的线程突出显示和可视化线程,以及根据块执行成本值将块分配给线程。
选择线查看器为了可视化块分配给线程。
数据流分析报表
分析增加并发的建议节查看是否存在管道延迟的建议延迟。通过流水线化依赖于数据的块,Dataflow子系统块可以提高并发性以获得更高的数据吞吐量。有关流水线延迟的更多信息,请参见数据流域的多核仿真与代码生成.中不支持加速分析万博1manbetx仿真分析模式。
在接受管道延迟的建议延迟后,您可以使用显示管道延迟在模型中可视化延迟。
使用分析报告来调查数据流子系统的相对权重和整个模型的最大理论加速。这种加速可以通过在分析期间执行的分区来实现。加速量与数据流子系统相对于整个模型的相对权重成正比。
分析报告显示每个线程的总成本和线程数值数据流子系统块。
用这个公式计算加速,其中n
总数是多少数据流子系统块,pctPar
一个子系统的并行执行的百分比,和criticalPathCost
是子系统中开销最大的线程的开销。
如果适用,数据流分析报告还将多线程异常显示为表。
多线程异常表显示了三种类型的消息:
由于模型配置,任何子系统中没有多线程——当模型配置导致所有多核数据流被禁用时,该消息将显示,例如,当受保护的模型不支持多线程时。万博1manbetx
子系统非多线程——当子系统由于不支持的特性、阻塞或工作不足而使用单个线程执行时,会显示此消息。万博1manbetx例如,范围Block不支持多线程。万博1manbetx该消息还显示多线程工作不足的子系统。在此场景中,消息以微秒为单位显示计算负载。
具有性能限制的子系统——当一个块的计算量显著高于其他块并限制了吞吐量时,将显示此消息。此消息表示子系统不能比指定的块执行得更快。如果一个块大于
90%
对于计算负载,这将导致子系统使用单个线程执行,并且消息将显示非多线程的子系统。
另请参阅
相关的话题
- 使用数据流域的多核分析
- 数据域
- 用Simulink进行多核编程万博1manbetx(万博1manbetx模型)
- 在多核目标上优化和部署(万博1manbetx模型)