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

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

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

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

Примечание

MEX-функции несовместимы между различными релизами программного обеспечения MATLAB Coder. Запустите функцию JIT MEX с помощью программного обеспечения MATLAB Coder того же релиза, которую вы использовали для генерации функции.

Укажите использование JIT-компиляции в приложении MATLAB Coder

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

  2. Установите Build type значение MEX.

  3. Установите флажок Use JIT compilation.

Задайте использование 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Действие
Пользовательский кодПредупреждениеC/C + + MEXЧтобы избежать предупреждения, отключите JIT-компиляцию.
Обновление информации о сборке (coder.updateBuildInfo)ПредупреждениеC/C + + MEXЧтобы избежать предупреждения, отключите JIT-компиляцию.
Использование интерфейса приложения OpenMP для параллелизации for-циклы (parfor)Предупреждение
  • JIT MEX

  • Нет параллелизации

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

См. также

Функции

Объекты

Похожие темы