Ускорьте генерацию MEX при помощи JIT-компиляции

Чтобы ускорить генерацию MEX-функции, задайте использование своевременной (JIT) технологии компиляции. Когда вы выполняете итерации между изменением кода MATLAB®, и тестирование кода MEX, с помощью этой опции может сэкономить время.

По умолчанию MATLAB Coder™ создает функцию MEX C/C++ путем генерации и компиляции кода C/C++. Когда вы задаете JIT-компиляцию, MATLAB CODER создает MEX-функцию JIT, которая содержит абстрактное представление кода MATLAB. Когда вы запускаете MEX-функцию JIT, MATLAB генерирует исполняемый код в памяти.

JIT-компиляция несовместима с определенными функциями генерации кода или опциями. Смотрите Несовместимости JIT-компиляции. Если JIT-компиляция включена, отсутствие предупреждающих сообщений или сообщений об ошибке во время генерации кода указывает на успешную JIT-компиляцию. В отчете генерации кода вкладка Summary указывает, что Типом Сборки является JIT MEX Function.

Задайте использование JIT-компиляции в приложении MATLAB CODER

  1. Чтобы открыть диалоговое окно Generate, нажмите стрелку Generate.

  2. Установите тип Сборки на MEX.

  3. Установите флажок JIT-компиляции Использования.

Задайте использование JIT-компиляции в командной строке

Используйте опцию -jit команды codegen. Например, задайте JIT-компиляцию для myfunction:

codegen -config:mex myfunction -jit -report

Также используйте параметр конфигурации EnableJIT кода.

cfg = coder.config('mex');
cfg.EnableJIT = true;
codegen -config cfg myfunction -report

Несовместимости JIT-компиляции

Следующая таблица обобщает функции генерации кода или опции, которые несовместимы с JIT-компиляцией.

НесовместимостьТип сообщенияСгенерированный MEXДействие
Пользовательский кодПредупреждениеMEX C/C++Чтобы избежать предупреждения, отключите JIT-компиляцию.
Обновление информации о сборке (coder.updateBuildInfo)ПредупреждениеMEX C/C++Чтобы избежать предупреждения, отключите JIT-компиляцию.
Использование интерфейса приложения OpenMP для распараллеливания for - циклы (parfor)Предупреждение
  • MEX JIT

  • Никакое распараллеливание

Если вы хотите распараллеливание for - циклы, отключаете JIT-компиляцию.
Генерация исходного кода C/C++ толькоОшибка'none'Задайте или JIT-компиляцию или генерацию кода C/C++ только.

Смотрите также

Функции

Объекты

Похожие темы

Была ли эта тема полезной?