主要内容

万博1manbetx绩效顾问检查

万博1manbetxPerformance Advisor检查概述

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

另见

使用性能顾问提高仿真性能

基线

在performance Advisor实施改进后,建立一个度量来比较仿真的性能。

另见

创建Performance Advisor基线度量

需要更新关系图的检查

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

另见

使用性能顾问提高仿真性能

需要模拟才能运行的检查

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

另见

使用性能顾问提高仿真性能

检查模拟模式设置

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

另见

加速度是什么?

检查编译器优化设置

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

另见

编译器优化级别

检查硬件加速设置

使用该检查可根据模拟时间比较三个硬件加速选项。

另见

硬件加速

创建基线

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

  • 选择复选框。

  • 设置格式参数结构随着时间的推移

另见

创建Performance Advisor基线度量

确定资源密集型诊断设置

要提高模拟速度,请尽可能禁用诊断。例如,某些诊断,如解算器数据不一致超出了数组边界,会在模拟期间产生运行时开销。

另见

检查优化设置

要提高模拟速度,请尽可能启用优化。例如,如果禁用了某些优化(如块缩减),请启用这些优化以提高模拟速度。

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

另见

识别低效的查找表块

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

另见

检查MATLAB系统块仿真模式

一般情况下,要提高仿真速度,请选择代码生成对于模拟使用参数的MATLAB系统块因为MATLAB之间的数据交换®和仿真软万博1manbetx件®通过几个软件层,解释执行通常会减慢模拟,特别是当模型需要大量数据交换时。

该检查确定哪些MATLAB系统块可以生成代码并更改模拟使用参数值代码生成如果可能的话。

虽然代码生成不支持所有的MAT万博1manbetxLAB函数,它支持的MATLAB语言子集是广泛的。通过使用这个代码生成,你可以提高性能。

另见

识别解释的MATLAB功能块

为了提高模拟速度,需要替换解释MATLAB函数块与MATLAB函数在可能的情况下。由于MATLAB和Simulink之间的数据交换要经过几个软件层,万博1manbetx解释MATLAB函数块通常会减慢模拟速度,尤其是当模型需要许多数据交换时。

此外,因为您无法编译解释MATLAB函数解释MATLAB函数块阻止尝试使用加速模式来加速模拟。

虽然MATLAB函数块并不支持所有的MATLAB万博1manbetx函数,它所支持的MATLAB语言的子集是广泛的。通过将解释的MATLAB代码替换为仅使用此可嵌入MATLAB子集的代码,可以提高性能。

另见

确定模拟目标设置

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

另见

检查模型参考重建设置

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

另见

识别范围块

打开和未注释的作用域块会影响模拟性能。要提高模拟性能,请关闭并注释范围块。在范围块上单击鼠标右键,然后选择注释掉

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

另见

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

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

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

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

另见

检查模型参考并行构建

要改进模拟,请验证模型中参考模型的数量。如果有两个或多个参考模型,如果可能,并行构建模型。

Performance Advisor分析模型并估计当前计算机上的构建时间,就像它使用多个内核一样。它还估计模型的并行构建时间,方法与使用并行计算工具箱进行估计的方法相同™ 或MATLAB并行服务器™计算机上安装了软件。Performance Advisor执行此评估如下:

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

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

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

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

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

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

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

(1+并行构建开销时间估计系数)*(单机构建时间)

另见

检查延迟块循环缓冲区设置

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

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

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

  • 延迟长度的取值或上限不小于10。

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

另见

检查连续和离散速率耦合

如果您的模型既包含离散速率又包含连续速率,那么这些速率之间的耦合会减慢模拟的速度。Performance Advisor检查模型中的这些条件。

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

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

  • 最快的离散率相对小于最大步长由解算器确定。

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

另见

检查过零对连续积分的影响

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

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

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

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

设置最小积分参数可能会加速模拟。

另见

检查离散信号驱动导数端口

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

您可以围绕发现的驱动这些块的离散信号编辑模型,以删除此类情况零阶保持器离散信号和具有连续状态的对应块之间的块可能有助于解决该问题。

另见

检查求解器类型选择

若要改进模拟,请检查模型是否使用了适当的解算器类型。

显式解算器与隐式解算器

选择解算器取决于模拟开始时模型刚度的近似值。刚性系统具有缓慢和快速变化的连续动力学。隐式解算器专为刚性问题设计,而显式解算器专为非刚性问题设计。使用非刚性解算器求解刚性系统效率低下,并可能导致不正确的结果。如果非刚性解算器使用非常小的步长来解算模型,请检查是否有刚性系统。

模型 推荐的解决者
表示一个刚性系统 ode15s
不代表一个僵硬的系统 数值

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万博1manbetx在每次模拟运行期间解释模型。如果您经常更改模型,这通常是首选模式,因为它不需要单独的编译步骤。它还提供了对模型进行更改的最大灵活性。

在加速器模式下,Simulink尽可能将万博1manbetx模型编译成二进制共享库或DLL,从而消除正常模式下解释模拟的块间开销。加速器模式支持调试器和探查器,但不支持运行时诊断。万博1manbetx

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

当选择带有最新检查的快速加速器时,Performance Advisor在模拟期间不执行最新检查。您可以在优化参数的同时重复运行Rapid Accelerator可执行文件,而不会引起最新检查的开销。例如,如果您有一个大型模型或一个广泛使用模型引用的模型,那么这种执行方法可以提高效率。

对于带有3-D信号的模型,正常或加速模式效果最好。

另见

选择编译器优化开关

使用此检查来确定执行编译器优化是否有助于提高模拟速度。只能在“Accelerator”和“Rapid Accelerator”模式下进行优化。

笔记

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

另见

选择硬件加速设置

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

  • -硬件加速已禁用,且未使用SIMD。

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

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

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

另见

最终验证

这一检查验证了仿真时间和模型精度的整体性能提高。如果性能比原始模型差,performance Advisor将放弃对模型的所有更改,并加载原始模型。

验证的全局设置不适用于此检查。如果您尚未通过其他检查产生的更改验证性能改进,请使用此检查对模型的所有更改执行最终验证。

另见