Увеличьте скорость генерации кода

Количество времени, которое это занимает, чтобы сгенерировать код для модели, зависит от размера и параметров конфигурации модели. Например, если вы работаете с большой моделью, она может взять некоторое время, чтобы сгенерировать код. Чтобы уменьшить количество времени для генерации кода модели, попробуйте один или несколько следующих методов:

  • Создайте модель с шагом

  • Создайте иерархии ссылки большой модели параллельно

  • Минимизируйте требования к памяти во время генерации кода

  • Сгенерируйте только код

  • Отключите создание отчета генерации кода

Создайте модель с шагом

Можно использовать команду rtwbuild, чтобы создать модель и сгенерировать код. По умолчанию, при восстановлении модели, rtwbuild обеспечивает инкрементную сборку модели, которая только восстанавливает модель или подмодели, которые изменились начиная с новой сборки модели. Инкрементная сборка модели экономит время генерации кода. Используйте параметр Rebuild на панели Model Referencing, чтобы изменить метод, что использование Simulink®, чтобы определить, когда восстановить код для моделей, на которые ссылаются. Для получения дополнительной информации о параметре Rebuild смотрите, Восстанавливают (Simulink).

Создайте иерархии ссылки большой модели параллельно

В среде параллельных вычислений, каждый раз, когда условия позволяют, можно увеличить скорость генерации кода и компиляции путем создавания моделей, содержащих иерархии ссылки большой модели параллельно. Например, если у вас есть программное обеспечение Parallel Computing Toolbox™, можно распределить генерацию кода и компиляцию для каждой модели, на которую ссылаются, через ядра многожильного хоста - компьютера. Если у вас есть программное обеспечение MATLAB® Parallel Server™, можно распределить генерацию кода и компиляцию для каждой модели, на которую ссылаются, через удаленных рабочих в настройке MATLAB Parallel Server.

Улучшение скорости выполнения, понятое при помощи параллельных сборок для моделей, на которые ссылаются, зависит от нескольких факторов, включая:

  • Сколько моделей может быть создано параллельно для данной модели, ссылающейся на иерархию

  • Размер моделей, на которые ссылаются,

  • Ресурсы параллельных вычислений, такие как количество локальных и удаленных доступных рабочих

  • Аппаратные атрибуты локальных и удаленных машин (сумма RAM, количество ядер, и так далее)

Для получения дополнительной информации смотрите, Уменьшают Время изготовления для Моделей, на которые Ссылаются (Simulink Coder).

Минимизируйте требования к памяти во время генерации кода

Модели, которые имеют большие суммы параметра и постоянных данных (такие как интерполяционные таблицы) могут обложить налогом ресурсы памяти и замедлить генерацию кода. Генератор кода копирует эти данные в файл .rtw model. Файл .rtw model является частичным представлением модели, которую Компилятор Выходного языка анализирует, чтобы преобразовать вычисления блока, параметры, сигналы и постоянные данные в высокоуровневый язык (например, C). Компилятор выходного языка (TLC) является неотъемлемой частью генератора кода. Генератор кода копирует параметры и данные в model .rtw, происходят ли они в модели или происходят из переменных или объектов в рабочей области.

Можно улучшить скорость генерации кода путем определения максимального количества элементов, которые векторы данных могут иметь для генератора кода, чтобы скопировать эти данные в model .rtw. Когда вектор данных превышает заданный размер, генератор кода помещает ссылочный ключ в model .rtw. TLC использует этот ключ, чтобы получить доступ к данным из Simulink и отформатировать его в сгенерированный код. Ссылочные ключи приводят к поддержанию только одной копии больших векторов данных в памяти.

Значение по умолчанию, выше которого использование генератора кода ссылочные ключи вместо фактических значений данных 10 элементов. Можно проверить это значение. В Командном окне введите следующую команду:

get_param(0, 'RTWDataReferencesMinSize')

Чтобы установить порог к различному значению, в Командном окне, вводят следующую функцию set_param:

set_param(0, 'RTWDataReferencesMinSize', <size>)

Обеспечьте целочисленное значение для size, который задает количество элементов данных, выше которых генератор кода использует ссылочные ключи вместо фактических значений данных.

Сгенерируйте только код

Можно увеличить скорость генерации кода путем указывания, что процесс сборки генерирует код и make-файл, но не вызывает сделать команду. Когда генератор кода вызывает сделать команду, процесс сборки занимает больше времени, потому что генератор кода генерирует код, компилирует код и создает исполняемый файл.

На панели Code Generation в диалоговом окне Model Configuration Parameters можно указать, что процесс сборки генерирует только код путем выбора параметра Generate code only. Можно указать, что процесс генерации кода создает make-файл путем выбора Configuration Parameters> Code Generation> Build process> Makefile configuration> параметр Generate makefile.

Подавите создание отчета генерации кода

Можно ускорить генерацию кода, не генерируя отчет генерации кода как часть процесса сборки. Чтобы отключить создание отчета генерации кода, на Code Generation> панель Report, очищают параметр Create code generation report. После процесса сборки можно сгенерировать отчет генерации кода путем выполнения этой процедуры, Сгенерировать Отчет Генерации кода После Процесса сборки (Simulink Coder).

Похожие темы