Используйте проверки Performance Advisor для увеличения времени моделирования модели.
Повышение производительности моделирования с помощью Performance Advisor
Установите измерение для сравнения производительности моделирования после внедрения улучшений в Performance Advisor.
Для выполнения этих проверок требуется наличие схемы обновления.
Повышение производительности моделирования с помощью Performance Advisor
Эти проверки требуют выполнения моделирования для сбора достаточных данных о производительности. Performance Advisor сообщает о результатах после завершения моделирования.
Повышение производительности моделирования с помощью Performance Advisor
Эти проверки позволяют оценить режимы моделирования (Normal, Accelerator, Rapid Accelerator, Rapid Accelerator с актуальной проверкой) и определить оптимальный режим для достижения наиболее быстрого моделирования.
Эти проверки используются для выбора параметров оптимизации компилятора для повышения производительности.
Используйте проверку, чтобы сравнить три варианта аппаратного ускорения в зависимости от времени моделирования.
Эта проверка используется для создания опорной структуры при запуске Performance Advisor. Можно также создать опорную структуру вручную. Опорная структура - это измерение производительности моделирования перед выполнением проверок в Performance Advisor. Базовая линия включает время выполнения моделирования и результаты моделирования (регистрируемые сигналы). Перед созданием опорной структуры для модели на панели Импорт/экспорт данных (Data Import/Export) диалогового окна Параметры конфигурации (Configuration Parameters) выполните следующие действия.
Установите флажок Состояния.
Задайте для параметра Format значение Structure with time.
Для повышения скорости моделирования отключите диагностику там, где это возможно. Например, некоторая диагностика, например несогласованность данных решателя или превышение границ массива, приводит к перегрузкам во время выполнения во время моделирования.
Для повышения скорости моделирования включите оптимизацию там, где это возможно. Например, если некоторые оптимизации, такие как сокращение блоков, отключены, включите эти оптимизации для повышения скорости моделирования.
Можно также скомпилировать скорость компиляции для скорости моделирования, задав уровень оптимизации компилятора. Оптимизация компилятора для ускорений отключена по умолчанию. Их включение ускоряет выполнение моделирования, но приводит к увеличению времени сборки. Скорость и эффективность компилятора Си, используемого для режимов ускорителя и ускорителя, также влияет на время, необходимое на этапе компиляции.
Для повышения скорости моделирования используйте правильно настроенные блоки таблицы подстановки.
В целом, для повышения скорости моделирования выберите Code generation для параметра Simulate using блока MATLAB System. Поскольку обмен данными между MATLAB ® и Simulink ® проходит через несколько программных уровней,Interpreted execution обычно замедляет моделирование, особенно если модель нуждается во многих обменах данными.
Эта проверка определяет, какие системные блоки MATLAB могут генерировать код, и изменяет Simulate с использованием значения параметра на Code generation по возможности.
В то время как Code generation не поддерживает все функции MATLAB, подмножество поддерживаемого языка MATLAB является обширным. Используя это Code generation, вы можете улучшить производительность.
Для повышения скорости моделирования замените интерпретируемые функциональные блоки MATLAB функциональными блоками MATLAB, где это возможно. Поскольку обмен данными между MATLAB и Simulink проходит через несколько программных уровней, интерпретируемые функциональные блоки MATLAB обычно замедляют моделирование, особенно если модель нуждается во многих обменах данными.
Кроме того, поскольку невозможно скомпилировать интерпретируемую функцию MATLAB, блок интерпретируемой функции MATLAB препятствует попыткам использования режима ускорения для ускорения моделирования.
Хотя функциональные блоки MATLAB поддерживают не все функции MATLAB, подмножество поддерживаемого ими языка MATLAB является обширным. Заменив интерпретированный код MATLAB кодом, в котором используется только это вложенное подмножество MATLAB, можно повысить производительность.
Для повышения скорости моделирования отключите параметры цели моделирования, где это возможно. Например, в диалоговом окне «Параметры конфигурации» снимите флажок «Цель моделирования» > «Эхо-выражение без точки с запятой», чтобы повысить скорость моделирования.
Чтобы повысить скорость моделирования, в диалоговом окне Параметры конфигурации (Configuration Parameters) убедитесь, что для параметра «Ссылка на модель» (Model Referencing) > «Перестроить» (Rebuild) задано значение If any changes in known dependencies detected.
Открытые и незакомментированные блоки области могут влиять на производительность моделирования. Чтобы повысить производительность моделирования, закройте и прокомментируйте блоки области. Щелкните правой кнопкой мыши блок области и выберите «Комментарий».
Для открытых областей можно повысить скорость моделирования, уменьшив количество обновлений. В меню «Моделирование области» выберите «Уменьшить обновления для повышения производительности».
Определите активные настройки КИП в модели. Режим КИПиА с фиксированной точкой определяет, какие объекты регистрируют минимальные, максимальные и переполненные данные во время моделирования. Инструментальные средства необходимы для сбора диапазонов моделирования с помощью инструмента Fixed-Point Tool. Эти диапазоны используются для предложения типов данных для модели (требуется Fixed-Point Designer™). Если модель не преобразуется в фиксированную точку, отключите инструментарий фиксированной точки, чтобы восстановить максимальную скорость моделирования в модели.
На вкладке «Приложения» выберите инструмент «Фиксированная точка». В разделе «Система» нажмите кнопку «Продолжить».
На панели Иерархия модели (Model Hierarchy) инструмент «Фиксированная точка» (Fixed-Point Tool) обозначает системы, в которых в настоящее время включены инструменты (mmo), или (o). Щелкните правой кнопкой мыши систему в иерархии модели и в разделе Fixed-point instrumentation mode, выберите Use local settings или Force off.
КИПиА с фиксированной точкой и переопределение типа данных (Конструктор с фиксированной точкой)
Чтобы улучшить моделирование, проверьте количество ссылочных моделей в модели. При наличии двух или более ссылочных моделей по возможности создайте модель параллельно.
Performance Advisor анализирует модель и оценивает время сборки на текущем компьютере, как если бы он использовал несколько ядер. Она также оценивает время параллельной сборки модели таким же образом, как и оценка, если бы на компьютере было установлено программное обеспечение Parallel Computing Toolbox™ или MATLAB Parallel Server™. Performance Advisor выполняет эту оценку следующим образом:
Найдите в модели ссылочные модели, которые не ссылаются на другие ссылочные модели.
Вычислите среднее количество блоков в каждой из ссылочных моделей, которые не ссылаются на другие ссылочные модели.
Из списка ссылочных моделей, не ссылающихся на другие, выберите ссылочную модель, число блоков которой ближе всего к вычисленному среднему значению.
Создайте эту модель, чтобы получить время сборки.
На основе количества блоков и времени сборки для этой ссылочной модели оцените время сборки для всех остальных ссылочных моделей.
На основе этих значений времени сборки оцените время параллельной сборки для модели верхнего уровня.

Чтобы вычислить время накладных расходов, введенное механизмом параллельной сборки, установите коэффициент оценки времени накладных расходов параллельной сборки. Performance Advisor вычисляет предполагаемое время сборки с накладными расходами как:
(1 + коэффициент оценки накладных расходов параллельной сборки) * (время сборки на одной машине)
Чтобы улучшить моделирование, убедитесь, что каждый блок задержки в модели использует соответствующий тип буфера. По умолчанию блок использует буфер массива (параметр «Использовать циклический буфер для состояния» не выбран). Однако, когда длина задержки велика, кольцевой буфер может улучшить скорость выполнения, сохраняя число операций копирования постоянным.
Если блок Delay в данный момент использует буфер массива и все следующие условия выполняются, Performance Advisor выбирает циклический буфер:
Блок задержки находится в режиме, основанном на выборке, т.е. параметр обработки Input имеет значение Elements as channels (sample based)или тип входного сигнала имеет значение Sample based.
Значение или верхний предел длины задержки равен 10 или больше.
Размер состояния - равный длине задержки, умноженной на сумму всех значений ширины выходного сигнала - равен 1000 или больше.
Если модель содержит как дискретные, так и непрерывные скорости, связь между этими скоростями может замедлить моделирование. Performance Advisor проверяет эти условия в модели.
Модель использует решатель шага переменной.
Модель содержит как непрерывные, так и дискретные скорости.
Самая быстрая дискретная скорость относительно меньше, чем максимальный размер шага, определенный решателем.
Установка DecoupledContinuousIntegration параметр для on может ускорить моделирование.
Если модель содержит пересечения нулей, которые не влияют на непрерывную интеграцию, моделирование может замедлиться при выполнении всех следующих условий:
Модель использует решатель с переменным шагом.
Модель содержит блоки с непрерывными состояниями и пересечениями нулей.
Некоторые из нулевых переходов не влияют на интеграцию непрерывных состояний.
Установка MinimalZcImpactIntegration параметр для On может ускорить моделирование.
Выполните эту проверку, если в моделировании имеется много ненужных сбросов. Дискретный сигнал, возбуждающий блок с непрерывными состояниями, запускает сброс при каждом попадании выборки в блок. Эти сбросы являются дорогостоящими в вычислительном отношении. Performance Advisor проверяет эти сигналы и блоки и предоставляет их список.
Можно редактировать модель вокруг обнаруженных дискретных сигналов, которые управляют этими блоками для удаления таких случаев. Например, вставка блока удержания нулевого порядка между дискретным сигналом и соответствующим блоком с непрерывными состояниями может помочь решить проблему.
Чтобы улучшить моделирование, убедитесь, что в модели используется соответствующий тип решателя.
Выбор решателя зависит от аппроксимации жесткости модели в начале моделирования. Жесткая система имеет как медленно, так и быстро изменяющуюся непрерывную динамику. Неявные решатели специально разработаны для жестких задач, в то время как явные решатели предназначены для несжестких задач. Использование несжестких решателей для решения жестких систем неэффективно и может привести к неправильным результатам. Если нерезкий решатель использует очень маленький размер шага для решения модели, проверьте, есть ли жесткая система.
| Модель | Рекомендуемый решатель |
|---|---|
| Представляет жесткую систему | ode15s |
| Не представляет жесткую систему | ode45 |
Performance Advisor использует эвристику, показанную в таблице, для выбора между явными и неявными решателями.
| Исходный решатель | Действие консультанта по производительности |
|---|---|
| Решатель шага переменной | Сначала вычисляет жесткость системы при 0. Затем:
|
| Решатель непрерывного действия с фиксированным шагом |
|
Эта эвристика лучше всего работает, если жесткость системы не изменяется во время моделирования. Если жесткость системы зависит от времени, выберите наиболее подходящий решатель для этой системы, а не тот, который предлагает Performance Advisor.
Настройка параметров совместного моделирования для повышения производительности и точности.
Проверка и возврат изменений при увеличении времени моделирования - Performance Advisor отменяет предыдущие настройки совместного моделирования при увеличении времени моделирования.
Проверка и возврат изменений, если степень точности превышает допуск - Performance Advisor отменяет предыдущие настройки совместного моделирования, если степень точности превышает допуск.
Определение сигналов совместного моделирования, которые могут нуждаться в явной цифровой компенсации.
Проверка и возврат изменений при увеличении времени моделирования - Performance Advisor отменяет предыдущие настройки совместного моделирования, а время моделирования увеличивается.
Проверка и возврат изменений, если степень точности превышает допуск - Performance Advisor отменяет совместное моделирование, если степень точности превышает допуск.
Для увеличения пропускной способности домена потока данных может быть выгодно увеличить задержку системы. Performance Advisor анализирует домены потока данных в модели и находит оптимальные настройки задержки. Анализ также определяет любые другие ограничения многопоточности в доменах потока данных.
Анализ потока данных представляет собой многоэтапный процесс, в котором анализ может моделировать модель с включенным профилированием времени выполнения для каждого блока внутри доменов потока данных перед выполнением анализа секционирования.
После завершения анализа Performance Advisor предлагает значение задержки, которое оптимизирует пропускную способность системы для многоядерной архитектуры ЦП хост-компьютера и определяет любые другие ограничения многопоточности в доменах потока данных.
Домен потока данных (панель системных инструментов DSP)
Для достижения максимального времени моделирования используйте эту проверку для оценки следующих режимов и определения оптимального выбора:
Нормальный
Акселератор
Быстрый ускоритель
Rapid Accelerator с актуальной проверкой
В обычном режиме Simulink интерпретирует модель во время каждого прогона моделирования. При частом изменении модели этот режим обычно является предпочтительным, поскольку для него не требуется отдельного этапа компиляции. Она также обеспечивает максимальную гибкость при внесении изменений в модель.
В режиме Accelerator Simulink компилирует модель в двоичную общую библиотеку или DLL, где это возможно, исключая накладные расходы на блок-блок интерпретируемого моделирования в обычном режиме. Режим Accelerator поддерживает отладчик и профилировщик, но не диагностику во время выполнения.
В режиме Rapid Accelerator скорости моделирования самые быстрые, но этот режим работает только с моделями, где C-код доступен для всех блоков модели. Кроме того, этот режим не поддерживает отладчик или профилировщик.
При выборе Rapid Accelerator с актуальной проверкой Performance Advisor не выполняет актуальную проверку во время моделирования. Можно запускать исполняемый файл Rapid Accelerator многократно при настройке параметров без накладных расходов на актуальные проверки. Например, если имеется большая модель или модель, которая широко использует ссылку на модель, этот метод выполнения может повысить эффективность.
Для моделей с 3-D сигналами лучше всего работают режимы Нормальный (Normal) или Ускоритель (Accelerator).
Эта проверка позволяет определить, поможет ли оптимизация компилятора повысить скорость моделирования. Оптимизация может выполняться только в режимах ускорителя или быстрого ускорителя.
Примечание
Эта проверка будет пропущена, если MATLAB не настроен на использование оптимизирующего компилятора.
Эта проверка сравнит три варианта аппаратного ускорения в зависимости от времени моделирования.
Off - Аппаратное ускорение отключено и SIMD не используется.
Leverage generic hardware (Faster, no rebuild) - Использование инструкций SIMD для общего оборудования в соответствии с требованиями системы Simulink. Этот параметр не требует перестроения модели для моделирования при смене главного компьютера.
Leverage native hardware (Fastest, rebuild allowed) - Использование инструкций SIMD для оборудования, встроенного в хост-компьютер. Этот параметр может потребовать перестроения модели для моделирования при смене главного компьютера.
На основе сравнения можно выбрать аппаратное ускорение.
Эта проверка подтверждает общее повышение производительности и точности моделирования в модели. Если производительность хуже, чем у исходной модели, Performance Advisor отменяет все изменения в модели и загружает исходную модель.
Глобальные параметры проверки не применяются к этой проверке. Если вы не проверили улучшение производительности в результате изменений, вызванных другими проверками, используйте эту проверку для выполнения окончательной проверки всех изменений в модели.