Используйте проверки Performance Advisor, чтобы улучшить время симуляции модели.
Повышение эффективности симуляции с помощью Performance Advisor
Установите измерение для сравнения эффективности симуляции после того, как Performance Advisor реализует улучшения.
Эти проверки требуют, чтобы Update Diagram происходило в порядок для выполнения.
Повышение эффективности симуляции с помощью Performance Advisor
Эти проверки требуют симуляции, чтобы запустить порядок, чтобы собрать достаточное количество эффективности данных. Performance Advisor сообщает результаты после завершения симуляции.
Повышение эффективности симуляции с помощью Performance Advisor
Эти проверки оценивают режимы симуляции (Normal, Accelerator, Rapid Accelerator, Rapid Accelerator с актуальной проверкой) и идентифицируют оптимальный режим для достижения самой быстрой симуляции.
Используйте эти проверки для выбора настроек оптимизации компилятора для улучшенной производительности.
Используйте проверку, чтобы сравнить три опции оборудования ускорения на основе их времен симуляции.
Установите этот флажок, чтобы создать базовый уровень при запуске Performance Advisor. Опорную структуру можно также создать вручную. Базовая структура является измерением эффективности симуляции перед запуском проверок в Performance Advisor. Базовая линия включает время выполнения симуляции и результаты симуляции (записанные сигналы). Перед созданием опорной структуры для модели на панели Data Import/Export диалогового окна Параметры конфигурации (Configuration Parameters):
Установите флажок States.
Установите параметр Format равным Structure with time
.
Чтобы улучшить скорость симуляции, отключите диагностику, где это возможно. Для примера, некоторые диагностики, такие как Solver data inconsistency или Array bounds exceeded, несут перегрузки во время выполнения во время симуляции.
Чтобы улучшить скорость симуляции, включите оптимизацию, где это возможно. Для примера, если некоторые оптимизации, такие как Сокращение блоков, отключены, включите эти оптимизации, чтобы улучшить скорость симуляции.
Можно также сравнить скорость компиляции для скорости симуляции путем установки уровня оптимизации компилятора. Оптимизация компилятора для ускорений по умолчанию отключена. Включение их ускоряет запуски симуляции, но приводит к увеличению времен сборки. Скорость и эффективность компилятора C, используемого для режимов Accelerator и Rapid Accelerator, также влияют на время, необходимое на шаге компиляции.
Чтобы улучшить скорость симуляции, используйте правильно сконфигурированные блоки интерполяционной таблицы.
В целом, чтобы улучшить скорость симуляции, выберите Code generation
для параметра Simulate using блока MATLAB System. Потому что обмен данными между MATLAB® и Simulink® проходит через несколько программных слоев, Interpreted execution
обычно замедляет симуляции, особенно если модели нужно много обменов данными.
Эта проверка определяет, какие системные блоки MATLAB могут генерировать код, и изменяет значение параметров Simulate using на Code generation
где это возможно.
Пока Code generation
не поддерживает все функции MATLAB, подмножество языка MATLAB, которое он поддерживает, обширно. При помощи этой Code generation
, можно улучшить эффективность.
Чтобы улучшить скорость симуляции, замените блоки Interpreted MATLAB Function на блоки MATLAB Function, где это возможно. Поскольку обмен данными между MATLAB и Simulink проходит через несколько программных слоев, Interpreted MATLAB Function блоки обычно медленно моделируют, особенно если модели нужно много обменов данными.
Кроме того, поскольку вы не можете скомпилировать Interpreted MATLAB Function, блок Interpreted MATLAB Function препятствует попыткам использовать режим ускорения для ускорения симуляций.
Хотя блоки MATLAB Function не поддерживают все функции MATLAB, подмножество языка MATLAB, которое он поддерживает, обширно. Заменив интерпретированный код MATLAB на код, который использует только это встраиваемое подмножество MATLAB, можно улучшить эффективность.
Чтобы улучшить скорость симуляции, отключите настройки цели симуляции, где это возможно. Для примера в диалоговом окне Параметры конфигурации снимите флажок Simulation Target > Echo expression without semicolons, чтобы улучшить скорость симуляции.
Чтобы улучшить скорость симуляции, в диалоговом окне Параметров конфигурации проверьте, что для параметра Model Referencing > Rebuild задано значение If any changes in known dependencies detected
.
Открытые и необычные блоки Scope могут повлиять на эффективность симуляции. Чтобы улучшить эффективность симуляции, закройте и закройте Возможности блоки. Щелкните правой кнопкой мыши блок возможностей и выберите Comment Out.
Для открытых возможности улучшить скорость симуляции, сократив обновления. В меню Simulation возможности выберите Reduce Updates to Improve Performance.
Идентифицируйте активные настройки инструментирование в модели. Режим инструментирование с фиксированной точкой управляет тем, какие объекты регистрируют данные минимума, максимума и переполнения во время симуляции. Инструментирование требуется для сбора областей значений симуляции с помощью Fixed-Point Tool. Эти области значений используются для предложения типов данных для модели (требует Fixed-Point Designer™). Когда вы не активно преобразуете модель в фиксированную точку, отключите инструментирование с фиксированной точкой, чтобы восстановить максимальную скорость симуляции в вашей модели.
На вкладке Apps выберите Fixed-Point Tool. В разделе System under design нажмите Continue.
На панели «Иерархия модели» Fixed-Point Tool обозначает системы, в которых в настоящее время включено инструментирование с (mmo)
, или (o)
. Щелкните правой кнопкой мыши систему в иерархии модели и, под Fixed-point instrumentation mode
, выберите Use local settings
или Force off
.
Переопределение Инструментирования и типа данных с фиксированной точкой (Fixed-Point Designer)
Чтобы улучшить симуляцию, проверьте количество моделей-ссылок в модели. Если существует две или более моделей-ссылок, создайте модель параллельно, если это возможно.
Performance Advisor анализирует модель и оценивает время сборки на текущем компьютере как при использовании нескольких ядер. Он также оценивает время параллельных сборок модели таким же образом, как и оценка, если бы на компьютере было установлено программное обеспечение Parallel Computing Toolbox™ или MATLAB Parallel Server™. Performance Advisor выполняет эту оценку следующим образом:
Поиск в модели ссылочных моделей, которые не ссылаются на другие модели ссылок.
Вычислим среднее количество блоков в каждом из ссылочных моделей, которые не ссылаются на другие ссылочные модели.
Из списка ссылок на модели, которые не ссылаются на другие, выберите ссылку на модель, чье количество блоков ближе всего к вычисляемому среднему значению.
Создайте эту модель, чтобы получить время сборки.
Основываясь на количестве блоков и времени сборки для этой ссылочной модели, оцените время сборки для всех других ссылочных моделей.
Основываясь на этих временах сборки, оцените время параллельных сборок для верхней модели.
Чтобы вычислить служебное время, введенное механизмом параллельного построения, установите коэффициент оценки служебного времени параллельного построения. Performance Advisor вычисляет предполагаемое время сборки с накладными расходами как:
(1 + Parallel Build Overhead Time Estimation Factor) * (Время сборки на одной машине)
Чтобы улучшить симуляцию, проверяйте, что каждый блок Delay в модели использует соответствующий тип буфера. По умолчанию блок использует буфер массива (опция Use circular buffer for state не выбрана). Однако, когда длина задержки большая, циклический буфер может улучшить скорость выполнения, сохраняя количество операций копирования постоянным.
Если блок Delay в данный момент использует буфер массива, и все следующие условия равны true, Performance Advisor выбирает циклический буфер:
Блок Delay находится в основанном на выборке режиме, то есть либо параметр Input processing установлен в Elements as channels (sample based)
, или тип входного сигнала устанавливается на Sample based
.
Значение или верхний предел длины задержки составляет 10 или более.
Размер состояния - равный длине задержки, умноженной на общую длину всех выходных сигналов - составляет 1000 или больше.
Если ваша модель содержит как дискретные, так и непрерывные скорости, связь между этими скоростями может замедлить симуляцию. Performance Advisor проверяет эти условия в вашей модели.
Модель использует решатель переменного шага.
Модель содержит как непрерывные, так и дискретные скорости.
Самая быстрая дискретная скорость относительно меньше, чем Max step size определено решателем.
Установка DecoupledContinuousIntegration
параметр в on
может ускорить симуляцию.
Если ваша модель содержит пересечения нулем, которые не влияют на непрерывное интегрирование, симуляция может замедлиться, когда будут удовлетворены все следующие условия:
Модель использует решатель с переменной степенью.
Модель содержит блоки, которые имеют непрерывные состояния и пересечения нулем.
Некоторые пересечения пересечений нулем не влияют на интегрирование непрерывных состояний.
Установка MinimalZcImpactIntegration
параметр в On
может ускорить симуляцию.
Запустите эту проверку, если в вашей симуляции много ненужных сбросов. Дискретный сигнал, управляющий блоком с непрерывными состояниями, запускает сброс при каждом временном попадании шага расчета блока. Эти сбросы являются в вычислительном отношении дорогими. Performance Advisor проверяет эти сигналы и блоки и предоставляет их список.
Можно отредактировать модель вокруг обнаруженных дискретных сигналов, которые управляют этими блоками, чтобы удалить такие случаи. Например, вставка Zero Order Hold блока между дискретным сигналом и соответствующим блоком с непрерывными состояниями может помочь решить проблему.
Чтобы улучшить симуляцию, проверяйте, что модель использует соответствующий тип решателя.
Выбор решателя зависит от приближения жесткости модели в начале симуляции. Жесткая система имеет как медленно, так и быстро непрерывно изменяющуюся динамику. Неявные решатели специально разработаны для жестких задач, в то время как явные решатели предназначены для нежестких задач. Использование нежестких решателей для решения жестких систем неэффективно и может привести к неправильным результатам. Если нежесткий решатель использует размер очень небольшого шага, чтобы решить модель, проверьте, есть ли у вас жесткая система.
Модель | Рекомендуемый решатель |
---|---|
Представляет жесткую систему | ode15s |
Не представляет жесткую систему | ode45 |
Performance Advisor использует эвристику, показанную в таблице, чтобы выбрать между явным и неявным решателями.
Исходный решатель | Performance Advisor |
---|---|
Переменный решатель шага | Сначала вычисляет жесткость системы при 0. Затем:
|
Решатель с непрерывным фиксированным шагом |
|
Этот эвристический метод работает лучше всего, если жесткость системы не изменяется во время симуляции. Если жесткость системы изменяется со временем, выберите наиболее подходящий решатель для этой системы, а не один Performance Advisor.
Настройте настройки ко-симуляции для лучшей эффективности и точности.
Проверьте и верните изменения, если время симуляции увеличивается - Performance Advisor возвращает предыдущие настройки ко-симуляции, когда время симуляции увеличивается.
Проверьте и верните изменения, если степень точности больше допуска - Performance Advisor возвращает предыдущие настройки ко-симуляции, если степень точности больше допуска.
Идентифицируйте сигналы ко-симуляции, которые могут потребовать явной числовой компенсации.
Проверьте и верните изменения, если время симуляции увеличивается - Performance Advisor возвращает предыдущие настройки ко-симуляции, время симуляции увеличивается.
Проверьте и верните изменения, если степень точности больше допуска - Performance Advisor возвращает ко-симуляции, если степень точности больше допуска.
Чтобы увеличить пропускную способность области dataflow, может быть выгодно увеличить задержку системы. Performance Advisor анализирует области dataflow в вашей модели и находит оптимальные настройки задержки. Анализ также идентифицирует любые другие ограничения многопоточности в областях dataflow.
Анализ dataflow является многостадийным процессом, где анализ может симулировать модель с профилированием во время выполнения, активированным для каждого блока в областях dataflow, перед выполнением анализа разбиения.
После завершения анализа Performance Advisor предлагает значение задержки, которое оптимизирует пропускную способность системы для многоядерной архитектуры центрального процессора хоста-компьютера и идентифицирует любые другие ограничения многопоточности в dataflow областей
Область Dataflow (DSP System Toolbox)
Чтобы достичь самого быстрого времени симуляции, используйте эту проверку, чтобы оценить следующие режимы и идентифицировать оптимальный выбор:
Нормальный
Акселератор
Быстрый Accelerator
Быстрый Accelerator с актуальной проверкой
В режиме Normal Mode Simulink интерпретирует вашу модель во время каждого запуска симуляции. Если вы часто изменяете модель, это обычно предпочтительный режим, который нужно использовать, потому что он не требует отдельного шага компиляции. Это также обеспечивает максимальную гибкость для внесения изменений в вашу модель.
В режиме Accelerator Simulink компилирует модель в двоичную общую библиотеку или DLL, где это возможно, устраняя накладные расходы между блоками интерпретированного симуляции в режиме normal mode. Режим Accelerator поддерживает отладчик и профилировщик, но не диагностику во время выполнения.
В режиме Rapid Accelerator скорости симуляции самые быстрые, но этот режим работает только с моделями, где код С доступен для всех блоков в модели. Кроме того, этот режим не поддерживает отладчик или профилировщик.
При выборе Rapid Accelerator с актуальной проверкой Performance Advisor не выполняет актуальную проверку во время симуляции. Можно запускать исполняемый файл Rapid Accelerator неоднократно во время настройки параметров, не внося накладных расходов на актуальные проверки. Например, если у вас есть большая модель или модель, которая широко использует модель-ссылку, этот метод выполнения может увеличить эффективность.
Для моделей с 3-D сигналами лучше всего работают режимы Normal или Accelerator.
Используйте эту проверку, чтобы определить, может ли выполнение оптимизации компилятора помочь улучшить скорость симуляции. Оптимизация может быть выполнена только в режимах Accelerator или Rapid Accelerator.
Примечание
Эта проверка будет пропущена, если MATLAB не настроен на использование оптимизирующего компилятора.
Эта проверка сравнит три опции оборудования ускорения на основе их времен симуляции.
Off
- Аппаратное ускорение отключено, и SIMD не используется.
Leverage generic hardware (Faster, no rebuild)
- Используйте инструкции SIMD для аппаратного обеспечения в соответствии с системными требованиями Simulink. Эта опция не требует перестроения модели для симуляции при изменении хоста-компьютера.
Leverage native hardware (Fastest, rebuild allowed)
- Используйте инструкции SIMD для оборудования, встроенного в хост-компьютер. Эта опция может потребовать перестроения модели для симуляции при изменении хоста-компьютера.
Вы можете выбрать аппаратное ускорение на основе сравнения.
Эта проверка подтверждает общее улучшение эффективности времени симуляции и точности в модели. Если эффективность хуже исходной модели, Performance Advisor отбрасывает все изменения модели и загружает исходную модель.
Глобальные параметры для валидации не применяются к этой проверке. Если вы не подтвердили улучшение эффективности из-за изменений, полученных в результате других проверок, используйте эту проверку, чтобы выполнить окончательную валидацию всех изменений в модели.