主要内容

金宝app性能顾问检查

金宝app绩效顾问检查概述

使用Performance Advisor检查来提高模型模拟时间。

另请参阅

使用Performance Advisor提高仿真性能

基线

在performance Advisor实现改进之后,建立一个度量来比较模拟的性能。

另请参阅

创建一个绩效顾问基线度量

需要更新关系图的检查

这些检查要求更新图发生是为了运行。

另请参阅

使用Performance Advisor提高仿真性能

需要运行模拟的检查

为了收集足够的性能数据,这些检查需要运行模拟。在模拟完成后,Performance Advisor报告结果。

另请参阅

使用Performance Advisor提高仿真性能

检查模拟模式设置

这些检查评估模拟模式(正常、加速器、快速加速器、带有最新检查的快速加速器),并确定实现最快模拟的最佳模式。

另请参阅

什么是加速度?

检查编译器优化设置

使用这些检查来选择编译器优化设置以提高性能。

另请参阅

编译器优化级别

检查硬件加速设置

使用检查来比较基于模拟时间的三个硬件加速选项。

另请参阅

硬件加速

创建基线

选择此检查以在Performance Advisor运行时创建基线。您也可以手动创建基线。基线是在performance Advisor中运行检查之前对模拟性能的度量。基线包括运行模拟的时间和模拟结果(记录的信号)。在为模型创建基线之前,请在数据导入/导出“配置参数”对话框中的:

  • 选择复选框。

  • 设置总体安排参数结构随着时间的推移

另请参阅

创建一个绩效顾问基线度量

确定资源密集型诊断设置

要提高模拟速度,请尽可能禁用诊断功能。例如,某些诊断,如解决数据不一致数组边界超过,在模拟过程中产生运行时开销。

另请参阅

检查优化设置

要提高模拟速度,请尽可能进行优化。例如,如果禁用了某些优化(如Block Reduction),则启用这些优化以提高模拟速度。

您还可以通过设置编译器优化级别来权衡编译时速度和模拟速度。默认情况下,编译器加速优化是禁用的。启用它们可以加速模拟运行,但会导致更长的构建时间。用于Accelerator和Rapid Accelerator模式的C编译器的速度和效率也会影响编译步骤所需的时间。

另请参阅

识别低效的查找表块

要提高模拟速度,请使用正确配置的查找表块。

另请参阅

检查MATLAB系统块仿真模式

通常,要提高模拟速度,请选择代码生成模拟使用参数MATLAB系统块。因为MATLAB之间的数据交换®和Sim金宝appulink®通过几个软件层,解释执行通常会减慢模拟,特别是当模型需要大量数据交换时。

这个检查确定哪些MATLAB系统块可以生成代码和更改模拟使用参数值代码生成在可能的情况下。

代码生成不支持所有的MAT金宝appLAB函数,它所支持的MATLAB语言的子集是广泛的代码生成,你可以提高性能。

另请参阅

识别解释的MATLAB函数块

为了提高模拟速度,需要替换解释MATLAB函数阻塞MATLAB函数在可能的情况下。由于MATLAB和Simulink之间的数据交换要经过几个软件层,金宝app解释MATLAB函数块通常会减缓模拟,特别是当模型需要许多数据交换时。

此外,因为您不能编译解释MATLAB函数,一个解释MATLAB函数阻止使用加速模式加速模拟的尝试。

MATLAB函数块不支持所有的MATLAB函金宝app数,它支持的MATLAB语言的子集是广泛的。通过将解释的MATLAB代码替换为只使用这个可嵌入的MATLAB子集的代码,可以提高性能。

另请参阅

识别模拟目标设置

为了提高模拟速度,在可能的地方禁用模拟目标设置。例如,在“配置参数”对话框中,将“模拟目标>返回没有分号的表达式复选框以提高模拟速度。

另请参阅

检查模型参考重建设置

若要提高模拟速度,请在“配置参数”对话框中验证模型引用>重建参数设置为如果检测到已知依赖项中的任何更改

另请参阅

识别范围块

打开的和未注释的Scope块会影响模拟性能。为了提高模拟性能,关闭并注释掉Scope块。右键单击范围块,然后选择点评

对于打开的作用域,可以通过减少更新来提高模拟速度。的范围模拟菜单,选择减少更新以提高性能

另请参阅

识别模型上的活动检测设置

识别模型上的活动检测设置。定点检测模式控制在模拟期间哪些对象记录最小、最大和溢出数据。需要使用定点工具来收集模拟范围。这些范围用于为模型提出数据类型(需要Fixed-Point Designer™)。当您不主动将模型转换为固定点时,禁用固定点仪器以恢复模型的最大模拟速度。

应用程序选项卡,选择定点的工具.下系统设计,点击继续

在模型层次结构窗格中,定点工具表示当前已启用检测的系统(mmo),或(o).在模型层次结构和下面右键单击系统定点测量模式中,选择使用本地设置强行离开

另请参阅

检查模型参考并行构建

为了改进仿真,验证模型中引用模型的数量。如果有两个或更多的引用模型,尽可能并行地构建模型。

Performance Advisor分析模型并估计当前计算机上的构建时间,就好像当前计算机正在使用多个核一样。它还估计模型的并行构建时间,方法与parallel Computing Toolbox™或MATLAB并行服务器™计算机上安装了软件。绩效顾问的评估如下:

  1. 在模型中搜索没有引用其他引用模型的引用模型。

  2. 计算每个引用模型中没有引用其他引用模型的平均块数。

  3. 在不参照其他参照模型的参照模型列表中,选择块数最接近计算平均值的参照模型。

  4. 构建此模型以获得构建时间。

  5. 基于此引用模型的块数量和构建时间,估计所有其他引用模型的构建时间。

  6. 基于这些构建时间,估计顶层模型的并行构建时间。

要计算并行构建机制引入的开销时间,请设置并行构建开销时间估计因子。Performance Advisor计算估计的构建时间和开销如下:

(1 +并行构建开销时间估计因子)*(单机上的构建时间)

另请参阅

检查延迟块循环缓冲设置

为了改进模拟,请检查每一个延迟模型中的块使用适当的缓冲区类型。默认情况下,块使用数组缓冲区(使用循环缓冲区的状态选项未被选中)。然而,当延迟长度较大时,循环缓冲区可以通过保持复制操作的数量不变来提高执行速度。

如果延迟block当前正在使用一个数组缓冲区,如果下列条件都为真,则Performance Advisor将选择一个循环缓冲区:

  • 延迟块处于基于样本的模式,即输入处理参数设置为作为通道的元素(基于采样),或设置输入信号类型为基于样本

  • 延迟长度的值或上限为10或更大。

  • 等于延迟长度乘以所有输出信号宽度之和的状态大小为1000或更大。

另请参阅

检查连续和离散的速率耦合

如果您的模型同时包含离散速率和连续速率,则这些速率之间的耦合可能会降低模拟速度。Performance Advisor会在您的模型中检查这些条件。

  • 该模型使用了变步长求解器。

  • 该模型包含连续和离散的速率。

  • 最快的离散率相对小于马克斯步长由求解器决定。

设置解耦连续集成参数在…上可能会加速模拟。

另请参阅

检查零跨越对持续集成的影响

如果您的模型包含不影响连续积分的零交叉,则当满足以下所有条件时,模拟可能会变慢:

  • 该模型使用可变步长解算器。

  • 该模型包含具有连续状态和过零的块。

  • 有些过零并不影响连续状态的积分。

设置MinimalZcImpactIntegration参数可能会加速模拟。

另请参阅

检查驱动派生端口的离散信号

如果您的模拟有许多不必要的重置,请运行此检查。驱动具有连续状态的块的离散信号在块的每个采样时间命中时触发重置。这些重置在计算上非常昂贵。Performance Advisor检查这些信号和块,并提供相同的列表。

您可以围绕发现的离散信号编辑模型,这些信号驱动这些块以消除此类情况。例如,插入a零阶保持器在离散信号和对应的连续信号块之间的块可能有助于解决这个问题。

另请参阅

检查解算器类型选择

为了改进仿真,检查模型是否使用了合适的求解器类型。

显式求解vs隐式求解

选择一个求解器取决于在仿真开始时模型刚度的近似。刚性系统具有慢变和快变的连续动态。隐式求解器是专门为刚性问题设计的,而显式求解器是为非刚性问题设计的。使用非刚性求解器来解决刚性系统是低效的,并可能导致错误的结果。如果一个非刚性解算器使用一个非常小的步长来解你的模型,检查你是否有一个刚性系统。

模型 推荐解算器
表示一个刚性系统 ode15s
不代表一个僵硬的系统 ode45

Performance Advisor使用表中所示的启发式在显式和隐式解算器之间进行选择。

原来的解算器 性能顾问行动
变步长解算器

首先计算系统在0处的刚度。然后:

  • 如果刚度大于1000,Performance Advisor选择ode15s。

  • 如果刚度小于1000,Performance Advisor选择ode45。

固定步连续解算器
  • 如果刚度大于1000,Performance Advisor将选择ode14x。

  • 如果刚度小于1000,Performance Advisor选择ode3。

如果系统的刚度在仿真过程中没有变化,这种启发式的工作效果最好。如果系统刚度随时间变化,请为该系统选择最合适的解算器,而不是Performance Advisor建议的解算器。

另请参阅

选择打开或关闭多线程协同模拟设置

调整联合模拟设置以获得更好的性能和准确性。

  • 如果模拟时间增加,则验证和恢复更改—当模拟时间增加时,Performance Advisor将恢复以前的联合模拟设置。

  • 如果精度程度大于公差,则验证和恢复更改-如果精度程度大于公差,则Performance Advisor恢复以前的联合模拟设置。

提示

你可以使用抽搐toc函数来测量模拟时间。

另请参阅

识别用于数值补偿的联合仿真信号

识别可能需要显式数值补偿的联合仿真信号。

  • 如果仿真时间增加,验证并还原更改-Performance Advisor会在仿真时间增加时还原以前的协同仿真设置。

  • 如果精度程度大于公差,则验证和恢复更改-如果精度程度大于公差,则Performance Advisor恢复联合模拟。

提示

你可以使用抽搐toc函数来测量模拟时间。

另请参阅

检查数据流域设置

为了提高数据流域的吞吐量,增加系统的延迟是有好处的。Performance Advisor分析模型中的数据流域并找到最佳延迟设置。该分析还确定了数据流域中的任何其他多线程限制。

数据流分析是一个多步骤的过程,在运行分区分析之前,分析可以对数据流域中的每个块启用运行时分析来模拟模型。

在分析完成之后,Performance Advisor会建议一个延迟值,该值可以优化主机的多核CPU架构的系统吞吐量,并识别数据流域中的任何其他多线程限制

另请参阅

选择模拟模式

为了达到最快的模拟时间,使用此检查来评估以下模式并确定最佳选择:

  • 正常的

  • 加速器

  • 快速加速器

  • 具有最新检查功能的快速加速器

在正常模式下,Simulink金宝app在每次模拟运行期间解释您的模型。如果频繁更改模型,这通常是首选模式,因为它不需要单独的编译步骤。它还提供了对模型进行更改的最大灵活性。

在Accelerator模式下,Simu金宝applink尽可能地将模型编译为二进制共享库或DLL,消除了在Normal模式下解释模拟的块到块开销。加速模式支持调试器和分析器,但不支金宝app持运行时诊断。

在Rapid Accelerator模式下,模拟速度是最快的,但该模式仅适用于c代码对模型中的所有块可用的模型。此外,此模式不支持调试器或剖析器。金宝app

在选择带有最新检查的Rapid Accelerator时,Performance Advisor不会在模拟期间执行最新检查。您可以在调整参数时重复运行Rapid Accelerator可执行文件,而不会产生最新检查的开销。例如,如果您有一个大模型或一个广泛使用mo的模型del参考,这种执行方法可以提高效率。

对于具有3–D信号的型号,正常模式或加速器模式效果最佳。

另请参阅

选择编译器优化开关

使用此检查确定执行编译器优化是否有助于提高模拟速度。优化只能在加速器或快速加速器模式下执行。

请注意

如果MATLAB未配置为使用优化编译器,则将跳过此检查。

另请参阅

选择硬件加速设置

此检查将根据模拟时间比较三种硬件加速选项。

  • —禁用硬件加速,不使用SIMD。

  • 利用通用硬件(更快,无需重新构建)-利用SIMD指令的硬件通用Simulink系统需求。金宝app当主机更改时,此选项不需要重新构建模型进行模拟。

  • 利用本机硬件(最快,允许重建)-利用主机本地硬件的SIMD指令。当主机更改时,此选项可能需要重新构建模型进行模拟。

可以根据对比选择硬件加速。

另请参阅

最终验证

此检查验证模型中模拟时间和精度的总体性能改进。如果性能比原始模型差,performance Advisor将放弃对模型的所有更改并加载原始模型。

用于验证的全局设置不适用于此检查。如果您还没有验证其他检查所导致的更改所带来的性能改进,则使用此检查对模型的所有更改执行最终验证。

另请参阅