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

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

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

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

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

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

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

Построение модели с шагами

Можно использовать slbuild команда, чтобы создать модель и сгенерировать код. По умолчанию при перестройке модели slbuild предоставляет пошаговую сборку модели, которая перестраивает только модель или подмодели, которые изменились со времени последней сборки модели. Инкрементальная сборка модели экономит время генерации кода. Используйте параметр Rebuild на панели Model Referencing, чтобы изменить метод, который Simulink® используется для определения того, когда следует перестроить код для ссылочных моделей. Для получения дополнительной информации о параметре Rebuild см. Раздел «Перестроение».

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

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

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

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

  • Размер ссылочных моделей

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

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

Дополнительные сведения см. в разделе Сокращение времени сборки для ссылок на Модели при помощи Parallel Builds.

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

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

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

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

get_param(0, 'RTWDataReferencesMinSize')

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

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

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

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

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

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

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

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

Похожие темы