Параметры конфигурации для генерации MEX-функции из кода MATLAB
A coder.MexCodeConfig
объект содержит параметры конфигурации, которые codegen
используется при генерации MEX-функции. Передайте объект в codegen
функция при помощи -config
опция.
cfg = coder.config('mex')
создает coder.MexCodeConfig
объект.
cfg = coder.config
создает coder.MexCodeConfig
объект.
CodeFormattingTool
- Инструмент форматирования для сгенерированного кода'Auto'
(по умолчанию) | 'Clang-format'
| 'MathWorks'
Опции форматирования кода для сгенерированного кода, заданные как одно из значений в таблице.
Значение | Описание |
---|---|
'Clang-format' | Генератор кода форматирует сгенерированный код согласно |
'Auto' | Использует внутренний эвристик, чтобы определить, форматирован ли сгенерированный код Чтобы определить, форматирован ли сгенерированный код |
'MathWorks' | Заставляет генератор кода вернуться к инструменту форматирования MathWorks. |
CompileTimeRecursionLimit
- Максимальное количество специализаций функций для рекурсии во время компиляцииМаксимальное количество специализаций функций для рекурсии во время компиляции, заданное как положительное целое число. Чтобы запретить рекурсию в MATLAB® код, задать CompileTimeRecursionLimit
в 0. Предел рекурсии во время компиляции по умолчанию достаточно велик для большинства рекурсивных функций, которые требуют этого типа рекурсии. Если генерация кода прекращается из-за предела рекурсии во время компиляции и требуется рекурсия во время компиляции, попробуйте увеличить предел. Также измените код MATLAB так, чтобы генератор кода использовал рекурсию во время выполнения. Смотрите Достигнутый предел рекурсии во время компиляции.
ConstantFoldingTimeout
- Максимальное количество команд, выполняемых папкой константМаксимальное количество команд, выполняемых постоянной папкой. В некоторых ситуациях генерация кода требует, чтобы определенные инструкции были постоянными. Если постоянное складывание прекращается до того, как эти инструкции будут свернуты постоянно, генерация кода прекращается. В этом случае увеличьте значение ConstantFoldingTimeout
.
ConstantInputs
- Режим проверки постоянного входа'CheckValues'
(по умолчанию) | 'IgnoreValues'
| 'Remove'
Режим проверки постоянного входа, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'CheckValues' |
Это значение является значением по умолчанию. Когда вы вызываете MEX-функцию, она проверяет, что значение, которое вы предоставляете для постоянного входного параметра, является значением, заданным во времени генерации кода. Вы можете вызвать MEX-функцию и исходную функцию MATLAB с теми же аргументами. Поэтому можно использовать один и тот же тестовый файл для обеих функций. Проверка значений может замедлить выполнение MEX-функции. |
'IgnoreValues' |
Когда вы вызываете MEX-функцию, она игнорирует значение, которое вы обеспечиваете для постоянного входного параметра. Он использует значение, заданное во время генерации кода. Можно использовать тот же тестовый файл без накладных расходов на проверку значений постоянных аргументов. |
'Remove' |
Генератор кода удаляет постоянные входные параметры из сигнатуры MEX-функции. Когда вы вызываете MEX-функцию, вы не задаете значение для постоянного входного параметра. Эта опция обеспечивает обратную совместимость. |
См. раздел «Постоянная проверка входных параметров» в MEX-функциях».
CppPackagesToNamespaces
- Сгенерируйте пространства имен C++ для пакетов MATLABtrue
(по умолчанию) | false
Будет ли создаваться пространство имен C++ для пакетов в коде MATLAB, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода создает пространства имен C++ для пакетов в коде MATLAB. См. «Организация сгенерированного кода С++ в пространства имен». |
false | Генератор кода не производит пространства имен C++ для пакетов в коде MATLAB. |
Зависимости:
Настройка TargetLang
на 'C++'
включает этот параметр.
Типы данных: logical
CppNamespace
- Имя пространства имен для сгенерированного кода С++''
(по умолчанию) | вектор символовПространство имен для сгенерированного кода С++. Генератор кода не производит код в пространстве имен, если вы не задаете непустой вектор символов.
См. «Организация сгенерированного кода С++ в пространства имен».
Зависимости:
Настройка TargetLang
на 'C++'
включает этот параметр.
CppNamespaceForMathworksCode
- Поместите код C++, сгенерированный для кода MathWorks, в отдельное пространство имен'coder'
(по умолчанию) | вектор символовПространство имен для кода С++, сгенерированного для кода MathWorks. Генератор кода не производит такое пространство имен, если вы задаете это свойство как пустой символьный вектор.
См. «Организация сгенерированного кода С++ в пространства имен».
Зависимости:
Настройка TargetLang
на 'C++'
включает этот параметр.
Типы данных: char
CppPreserveClasses
- Сгенерируйте классы C++ для классов MATLABtrue
(по умолчанию) | falseСгенерировать ли классы C++ или структуры стиля C для классов MATLAB в качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода производит классы C++ для классов MATLAB. Смотрите Сгенерировать классы C++ для классов MATLAB. |
false | Генератор кода создает структуры стиля C для классов MATLAB. |
Зависимости:
Настройка TargetLang
на 'C++'
включает этот параметр.
Типы данных: logical
CustomHeaderCode
- Пользовательский код, который появляется в верхней части сгенерированных файлов заголовка C/C + +Пользовательский код, который появляется в верхней части каждого файла заголовка C/C + +, сгенерированного из вашего кода MATLAB, кроме rtwtypes.h
и rtwhalf.h
, заданный как вектор символов.
CustomInclude
- Включите папки, чтобы добавить путь для компиляции сгенерированного кодаВключите папки, чтобы добавить к пути включения при компиляции сгенерированного кода. Задайте список включаемых папок как строковые массивы, массив ячеек с вектором символов или вектор символов.
Несколько имен папок, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
Строковые массивы | Строковые массивы в |
Массив ячеек из символьных векторов | Массив ячеек из векторов символов в |
Вектор символов | Отдельное включение папок a Примечание Установка нескольких записей в объектах строения кода с помощью векторов символов будет удалена в следующем релизе. Вместо этого используйте строковые массивы и массив ячеек из вектора символов. Для получения дополнительной информации см. раздел Вопросов совместимости. |
CustomInitializer
- Пользовательский код для включения в сгенерированную функцию инициализацииПользовательский код для включения в сгенерированную функцию инициализации, заданную как вектор символов.
CustomLibrary
- Статические файлы библиотеки для связи с сгенерированным кодомСтатические файлы библиотеки для связи с сгенерированным кодом, заданные как строковые массивы, массив ячеек с вектором символов или вектор символов.
Несколько статических имен файлов библиотеки, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
Строковые массивы | Строковые массивы в |
Массив ячеек из символьных векторов | Массив ячеек из векторов символов в |
Вектор символов | Разделите имена файлов статических библиотек на Примечание Установка нескольких записей в объектах строения кода с помощью векторов символов будет удалена в следующем релизе. Вместо этого используйте строковые массивы и массив ячеек из вектора символов. Для получения дополнительной информации см. раздел Вопросов совместимости. |
CustomSource
- Исходные файлы для компиляции и связи с сгенерированным кодомИсходные файлы для компиляции и связи с сгенерированным кодом, заданные как строковые массивы, массив ячеек из вектора символов или вектора символов.
Процесс сборки ищет исходные файлы сначала в текущей папке, а затем в папках включения, которые вы задаете в CustomInclude
. Если исходные файлы с таким же именем находятся в нескольких папках в пути поиска файлов, процесс сборки может использовать файл, отличный от указанного.
Предположим, что вы задаете foo.cpp
как исходный файл. Если foo.c
и foo.cpp
оба указаны в пути поиска файлов, вы не можете быть уверены, использует ли процесс сборки foo.c
или foo.cpp
.
Несколько имен исходных файлов, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
Строковые массивы | Строковые массивы в |
Массив ячеек из символьных векторов | Массив ячеек из векторов символов в |
Вектор символов | Разделите имена исходных файлов на Примечание Установка нескольких записей в объектах строения кода с помощью векторов символов будет удалена в следующем релизе. Вместо этого используйте строковые массивы и массив ячеек из вектора символов. Для получения дополнительной информации см. раздел Вопросов совместимости. |
CustomSourceCode
- Код, который появится в верхней части сгенерированного .c
или .cpp
файлыУкажите код, который будет отображаться в верхней части каждого сгенерированного .c
или .cpp
файл (кроме rtwhalf.c
или rtwhalf.cpp
), вне любой функции. Задайте код как вектор символов.
Не задайте определение статической функции на С.
CustomTerminator
- Код, который появляется в сгенерированной функции завершения Код, который появляется в сгенерированной функции завершения, заданный как вектор символов.
DeepLearningConfig
- Объект строения для генерации кода глубокого обученияcoder.MklDNNConfig
объектСтроение объект для генерации кода для нейронных сетей для глубокого обучения, заданный как coder.MklDNNConfig
объект.
A coder.MklDNNConfig
объект содержит параметры, характерные для генерации кода С++ для глубокого обучения с использованием Intel® MKL-DNN. Как создать coder.MklDNNConfig
объект, использование coder.DeepLearningConfig
. Для примера:
cfg = coder.config('mex'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');
Для генерации кода для нейронных сетей для глубокого обучения требуется Deep Learning Toolbox™ и пакет поддержки MATLAB Coder™ Interface for Deep Learning Libraries.
Смотрите Генерацию кода для нейронных сетей для глубокого обучения с MKL-DNN.
Примечание
Генерация кода MEX не поддерживается для глубокого обучения с помощью ARM® Вычислите библиотеку.
Зависимости: Если DeepLearningConfig
установлено, codegen
устанавливает TargetLang
на C++
.
DynamicMemoryAllocation
- Динамический режим выделения памяти'Threshold'
(по умолчанию) | 'AllVariableSizeArrays'
| 'Off'
Динамический режим выделения памяти, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Threshold' |
Это значение является значением по умолчанию. Генератор кода динамически выделяет память на куче для массивов переменного размера, размер которых (в байтах) больше или равен |
'AllVariableSizeArrays' | Генератор кода динамически выделяет память для всех массивов переменного размера на куче. |
'Off' |
Генератор кода статически выделяет память для массивов переменного размера в стеке. |
Неограниченные массивы переменного размера требуют динамического выделения памяти.
Зависимости:
EnableVariableSizing
включает этот параметр.
Установка этого DynamicMemoryAllocation
на 'Threshold'
включает DynamicMemoryAllocationThreshold
параметр.
DynamicMemoryAllocationInterface
- Динамически выделенный массив в сгенерированном интерфейсе функции'Auto'
(по умолчанию) | 'C'
| 'C++'
Реализация динамически выделенного массива на интерфейсе сгенерированной функции C/C + +, заданной в качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
'Auto' | Это значение по умолчанию. Если вы задаете |
'C' | Сгенерированный код использует стиль C |
'C++' | Если вы задаете Сгенерированный код использует |
Зависимости:
EnableVariableSizing
включает этот параметр.
DynamicMemoryAllocationThreshold
- Порог размера для динамического выделения памяти массивов переменного размера65536
(по умолчанию) | положительное целое числоПорог размера для динамического выделения памяти массивов переменного размера, заданный как положительное целое число. Генератор кода использует динамическое выделение памяти для массивов переменного размера, размер которых (в байтах) больше или равен порогу.
Зависимости:
Настройка DynamicMemoryAllocation
на 'Threshold'
включает этот параметр.
EnableAutoParallelization
- Автоматическая параллелизация for
циклыfalse
(по умолчанию) | true
Автоматическая параллелизация for
циклы, заданные в качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не параллелизирует автоматически |
true | Генератор кода автоматически параллелизирует |
Типы данных: logical
EchoExpressions
- Эхо выраженияtrue
(по умолчанию) | false
Эхо выражения, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. В MEX-функцию отображаются выход операторов, которые не заканчиваются точкой с запятой. |
false |
В MEX-функцию не отображается выхода операторов, которые не заканчиваются точкой с запятой. |
Это свойство не применяется к общим функциям визуализации, таким как disp
, plot
, или figure
когда они вызываются как внешняя функция. MEX-функции отображают выходы этих функций независимо от наличия точки с запятой или значения EchoExpressions
.
EnableAutoExtrinsicCalls
- Автоматические вызовы внешних функцийtrue
(по умолчанию) | false
Автоматические вызовы внешних функций в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Генератор кода обрабатывает некоторые общие функции визуализации как внешние функции. Вы не должны объявлять эти функции как внешние при помощи |
false | Генератор кода не рассматривает общие функции визуализации как внешние функции, если вы не объявляете их внешними coder.extrinsic . |
Некоторые общие функции визуализации plot
, disp
, и figure
. Смотрите Использование MATLAB Engine для выполнения вызова функции в сгенерированном коде.
EnableDebugging
- Режим отладки компилятора Cfalse
(по умолчанию) | true
Режим отладки компилятора C, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false |
Это значение является значением по умолчанию. Генератор кода не включает режим отладки компилятора C |
true |
Генератор кода включает режим отладки компилятора C Когда режим отладки включен, компилятор C не оптимизирует код. Компиляция происходит быстрее, но выполнение происходит медленнее. |
EnableJIT
- Just-in-time (JIT) режим компиляцииfalse
(по умолчанию) | true
JIT-режим компиляции, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false |
Это значение является значением по умолчанию. Генератор кода создает функцию C/C + + MEX путем генерации и компиляции кода C/C + +. |
true |
Генератор кода использует единовременную (JIT) технологию компиляции для генерации MEX-функций. Генератор кода создает функцию JIT MEX, которая содержит абстрактное представление кода MATLAB. Когда вы запускаете функцию JIT MEX, MATLAB генерирует исполняемый код в памяти. |
Чтобы ускорить генерацию MEX-функций, установите EnableJIT
на true
.
JIT-компиляция несовместима с определенными функциями и опциями генерации кода, такими как пользовательский код или использование библиотеки OpenMP. Если вы задаете JIT-компиляцию, и генератор кода не может ее использовать, то он генерирует функцию C/C + + MEX с предупреждением. Если EnableJIT
и EnableOpenMP
являются true
, и ваш код использует parfor
генератор кода использует JIT-компиляцию и обрабатывает parfor
-циклы как for
-циклы.
EnableMemcpy
— memcpy
оптимизацияtrue
(по умолчанию) | false
memcpy
оптимизация, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. При возможности генератор кода использует |
false |
Генератор кода не использует |
EnableMexProfiling
- Инструментирование для профилированияfalse
(по умолчанию) | true
Включение профилирования сгенерированной функции MEX-функция качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не включает инструментирование для профилирования в сгенерированную MEX-функцию. |
true | Генератор кода включает инструментирование для профилирования в сгенерированную MEX-функцию. Затем можно использовать Профилировщика MATLAB для профилирования MEX. Смотрите MEX-функции профиля при помощи Профилировщика MATLAB. |
EnableOpenMP
- Параллелизация parfor
- циклыtrue
(по умолчанию) | false
Параллелизация parfor
-циклы, заданные как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Если это возможно, генератор кода использует библиотеку OpenMP, чтобы создать итерации цикла, которые выполняются параллельно. |
false |
Генератор кода обрабатывает |
Посмотрите parfor
.
Использование библиотеки OpenMP несовместимо с JIT-компиляцией. Если EnableJIT
и EnableOpenMP
являются true
генератор кода использует JIT-компиляцию и обрабатывает parfor
-циклы как for
-циклы.
EnableRuntimeRecursion
- Поддержка рекурсии во время выполненияtrue
(по умолчанию) | false
Поддержка рекурсии во время выполнения, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Рекурсивные функции разрешены в сгенерированном коде. |
false |
Рекурсивные функции не разрешены в сгенерированном коде. |
Некоторые стандарты кодирования, такие как MISRA®, не допускать рекурсию. Чтобы увеличить вероятность генерации кода, который соответствует MISRA C®, задать EnableRuntimeRecursion
на false
.
Если ваш код MATLAB требует рекурсии и EnableRuntimeRecursion
во время выполнения является
false
, генерация кода прекращает работать.
Смотрите Генерацию кода для рекурсивных функций.
EnableVariableSizing
- Поддержка массива переменного размераtrue
(по умолчанию) | false
Поддержка массива переменного размера, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Для генерации кода разрешены массивы переменного размера. |
false |
Для генерации кода недопустимы массивы переменного размера. |
Зависимости:
Включает Dynamic memory allocation
.
ExtrinsicCalls
- Поддержка внешнего вызова функцииtrue
(по умолчанию) | false
Поддержка внешнего вызова функции, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Для внешней функции генератор кода производит вызов функции MATLAB. Генератор кода не генерирует внутренний код для функции. |
false |
Генератор кода игнорирует внешнюю функцию. Он не генерирует код для вызова функции MATLAB. Если внешняя функция влияет на выход функции MATLAB, генератор кода выдает ошибку компиляции. Если вы задаете |
Значение ExtrinsicCalls
влияет на то, как MEX-функция генерирует случайные числа для rand,
randi
, и randn
. Если ExtrinsicCalls
является true
, MEX-функция использует глобальный поток случайных чисел MATLAB, чтобы сгенерировать случайные числа. В противном случае MEX-функция использует автономный генератор случайных чисел.
Смотрите Использование MATLAB Engine для выполнения вызова функции в сгенерированном коде.
FilePartitionMethod
- Режим разбиения файлов'MapMFileToCFile'
(по умолчанию) | 'SingleFile'
Режим разбиения файлов, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'MapMFileToCFile' |
Это значение является значением по умолчанию. Генератор кода производит отдельные файлы C/C + + для каждого языкового файла MATLAB. |
'SingleFile' | Генератор кода создает один файл для функций C/C + +, которые сопоставлены с вашими функциями точки входа MATLAB. Генератор кода производит отдельные файлы C/C + + для служебных функций. |
Смотрите, как Сгенерированный код разделы MATLAB Coder.
GenCodeOnly
- Генерация только исходного кодаfalse
(по умолчанию) | true
Генерация только исходного кода, заданная в качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
false |
Это значение является значением по умолчанию. Генератор кода производит исходный код C/C + + и создает объектный код. |
true |
Генератор кода производит исходный код C/C + +, но не вызывает команду make или код объекта сборки. Когда вы итератируете между изменением кода MATLAB и генерацией кода C/C + +, генерация только кода может сэкономить время. |
GenerateComments
- Комментарии в сгенерированном коде true
(по умолчанию) | false
Комментарии в сгенерированном коде, заданные как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Генератор кода помещает комментарии в сгенерированный код. |
false | Генератор кода не помещает комментарии в сгенерированный код. |
GenerateReport
- Отчет генерации кодаfalse
(по умолчанию) | trueОтчет о генерации кода, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false |
Это значение является значением по умолчанию. Генератор кода формирует отчет только в случае возникновения ошибки или предупреждающих сообщений, или если вы задаете |
true | Генератор кода создает отчет генерации кода. |
GlobalDataSyncMethod
- Глобальный режим синхронизации данных'SyncAlways'
(по умолчанию) | 'SyncAtEntryAndExits'
| 'NoSync'
Глобальные данные, заданный как одно из значений в этой таблице.
Значение | Описание глобальных данных | Описание постоянных глобальных данных |
---|---|---|
|
Это значение является значением по умолчанию. Синхронизирует глобальные данные при входе и выходе MEX-функции и для внешних вызовов для максимальной согласованности между MATLAB и сгенерированной MEX-функцией. Чтобы максимизировать эффективность, если внешние вызовы не изменяют глобальные данные, используйте эту опцию с |
Проверяет согласованность постоянных глобальных данных при вводе MEX-функции и после внешних вызовов. Если значения глобальных данных в глобальной рабочей области MATLAB несовместимы с глобальными значениями константы компиляции в MEX-функция, MEX-функция заканчивается с ошибкой. Используйте |
|
Синхронизирует глобальные данные только при входе и выходе MEX-функции. Чтобы максимизировать эффективность, если только несколько внешних вызовов изменяют глобальные данные, используйте эту опцию с |
Проверяет постоянные глобальные данные только при вводе MEX-функции. Если значения глобальных данных в глобальной рабочей области MATLAB несовместимы с глобальными значениями константы компиляции в MEX-функция, MEX-функция заканчивается с ошибкой. Используйте |
|
Отключает синхронизацию. Перед отключением синхронизации проверьте, что ваша MEX-функция не взаимодействует с глобальными данными MATLAB. В противном случае могут возникнуть несоответствия между MATLAB и MEX-функцией. |
Отключает проверку согласованности. |
HighlightPotentialRowMajorIssues
- Потенциальные проблемы размещения строкtrue
(по умолчанию) | false
Отображение потенциальных проблем эффективности размещения основной строки, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
В отчете генерации кода отображаются потенциальные проблемы с эффективностью из-за размещения основной строки. (Это значение является значением по умолчанию.) |
false | В отчете генерации кода не отображаются проблемы, связанные с размещением массива. |
Смотрите Проект для Row-Major Array Layout.
InitFltsAndDblsToZero
- Назначение плавающего и двойного нуля с мемсетом true
(по умолчанию) | false
Назначение плавающего и двойного нуля с memset
, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. При возможности генератор кода использует |
false |
Генератор кода не использует |
InlineBetweenMathWorksFunctions
- Управление встраиванием между функциями MathWorks'Speed'
(по умолчанию) | 'Always'
| 'Readability'
| 'Never'
Инкрустация поведения во все сайты вызовов, где MathWorks вызывает другую функцию MathWorks, заданную в качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
'Speed' | Это значение является значением по умолчанию. Использует внутреннюю эвристику, чтобы определить, выполнять ли инкрустацию в месте вызова. Эта настройка обычно приводит к высоко оптимизированному коду. |
'Always' | Всегда выполняет инкрустацию в месте вызова. |
'Readability' | Почти никогда не вводит вызовы функций, кроме вызовов очень маленьких функций. Сохраняет модульность кода, не жертвуя слишком большой скоростью, когда это возможно. Результаты в высоко читаемом коде. |
'Never' | Никогда не вводит вызовы функций. Приводит к максимальной читаемости. Этот параметр может значительно снизить эффективность сгенерированного кода. |
Даже если вы выбираете 'Always'
или 'Never'
опция для настройки, в некоторых случаях, генератор кода может не строго следовать этой инструкции. Для примера, если существует конфликт, coder.inline('always')
или coder.inline('never')
директива, помещенная в тело функции, переопределяет эту опцию. Для получения дополнительной информации смотрите Взаимодействие между различными элементами управления встраиванием.
InlineBetweenUserAndMathWorksFunctions
- Управление встраиванием между пользовательскими функциями и функциями MathWorks'Speed'
(по умолчанию) | 'Always'
| 'Readability'
| 'Never'
Инкрустация поведения во все сайты вызовов, где функция, которую вы написали, вызывает функцию MathWorks, или функция MathWorks вызывает функцию, которую вы написали. Задается как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Speed' | Это значение является значением по умолчанию. Использует внутреннюю эвристику, чтобы определить, выполнять ли инкрустацию в месте вызова. Эта настройка обычно приводит к высоко оптимизированному коду. |
'Always' | Всегда выполняет инкрустацию в месте вызова. |
'Readability' | Почти никогда не вводит вызовы функций, кроме вызовов очень маленьких функций. Сохраняет модульность кода, не жертвуя слишком большой скоростью, когда это возможно. Результаты в высоко читаемом коде. |
'Never' | Никогда не вводит вызовы функций. Приводит к максимальной читаемости. Этот параметр может значительно снизить эффективность сгенерированного кода. |
Даже если вы выбираете 'Always'
или 'Never'
опция для настройки, в некоторых случаях, генератор кода может не строго следовать этой инструкции. Для примера, если существует конфликт, coder.inline('always')
или coder.inline('never')
директива, помещенная в тело функции, переопределяет эту опцию. Для получения дополнительной информации смотрите Взаимодействие между различными элементами управления встраиванием.
InlineBetweenUserFunctions
- Управление встраиванием между пользовательскими функциями'Speed'
(по умолчанию) | 'Always'
| 'Readability'
| 'Never'
Включение поведения во все узлы вызовов, где функция, которую вы написали, вызывает другую функцию, которую вы написали, заданную как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Speed' | Это значение является значением по умолчанию. Использует внутреннюю эвристику, чтобы определить, выполнять ли инкрустацию в месте вызова. Эта настройка обычно приводит к высоко оптимизированному коду. |
'Always' | Всегда выполняет инкрустацию в месте вызова. |
'Readability' | Почти никогда не вводит вызовы функций, кроме вызовов очень маленьких функций. Сохраняет модульность кода, не жертвуя слишком большой скоростью, когда это возможно. Результаты в высоко читаемом коде. |
'Never' | Никогда не вводит вызовы функций. Приводит к максимальной читаемости. Этот параметр может значительно снизить эффективность сгенерированного кода. |
Даже если вы выбираете 'Always'
или 'Never'
опция для настройки, в некоторых случаях, генератор кода может не строго следовать этой инструкции. Для примера, если существует конфликт, coder.inline('always')
или coder.inline('never')
директива, помещенная в тело функции, переопределяет эту опцию. Для получения дополнительной информации смотрите Взаимодействие между различными элементами управления встраиванием.
IntegrityChecks
- Проверка целостности памятиtrue
(по умолчанию) | falseПроверка целостности памяти, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Сгенерированный код обнаруживает нарушения целостности памяти и останавливает выполнение с помощью диагностического сообщения. |
false |
Сгенерированный код не обнаруживает нарушений целостности памяти. Настройка |
См. Раздел «Проверки во время выполнения системы управления»
LaunchReport
- Автоматическое открытие отчета генерации кодаfalse
(по умолчанию) | trueАвтоматическое открытие отчета генерации кода в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
false |
Это значение является значением по умолчанию. Если возникают ошибки или предупреждения, или если |
true | Генератор кода создает и открывает отчет генерации кода. |
MATLABSourceComments
- Включение исходного кода MATLAB в качестве комментариев в сгенерированный код false
(по умолчанию) | true
Включение исходного кода MATLAB в качестве комментариев в сгенерированный код, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
false |
Это значение является значением по умолчанию. Генератор кода не вставляет исходный код MATLAB в качестве комментариев в сгенерированный код. Генератор кода не включает сигнатуру функции MATLAB в функциональный баннер. |
true | Генератор кода вставляет исходный код MATLAB в качестве комментариев в сгенерированный код. Тег трассируемости непосредственно предшествует каждой строке исходного кода. Тег трассируемости помогает вам найти соответствующий исходный код MATLAB. Смотрите Трассировка сгенерированного кода C/C + + к исходному коду MATLAB. Генератор кода также включает сигнатуру функции MATLAB в функциональный баннер. |
Зависимости:
GenerateComments
включает этот параметр.
Смотрите Трассировка сгенерированного кода C/C + + к исходному коду MATLAB.
MemcpyThreshold
- Минимальный размер для memcpy
или memset
оптимизация Минимальный размер, в байтах, для оптимизации memcpy или memset, заданный как положительное целое число.
Чтобы оптимизировать сгенерированный код, который копирует последовательные элементы массива, генератор кода пытается заменить код на memcpy
вызов. Чтобы оптимизировать сгенерированный код, который присваивает буквальную константу последовательным элементам массива, генератор кода пытается заменить код на memset
вызов.
Количество байтов - это количество элементов массива, которые нужно скопировать или назначить, умноженное на количество байтов, необходимое для типа данных C/C + +.
Если количество элементов, которые нужно скопировать или назначить, переменное (не известно во время компиляции), генератор кода игнорирует MemcpyThreshold
свойство.
Смотрите memcpy Оптимизация и memset Оптимизация.
Name
- Имя объекта'MexCodeConfig'
(по умолчанию) | вектор символовИмя объекта, заданное как вектор символов.
PostCodeGenCommand
- Команда для настройки обработки сборки''
(по умолчанию) | вектор символовКоманда для настройки обработки сборки после генерации MEX-функции с codegen
, заданный как вектор символов.
См. раздел Индивидуальную настройку процесса сборки.
PreserveArrayDimensions
- N-мерная индексацияfalse
(по умолчанию) | true
Генерация кода, который использует N-мерную индексацию, заданную в качестве одного из значений в этой таблице.
Значение | Описание |
---|---|
false |
Сгенерируйте код, который использует одномерное индексирование. (Это значение является значением по умолчанию.) |
true | Сгенерируйте код, который использует N-мерную индексацию. |
См. «Генерация кода, который использует N-мерное индексирование».
PreserveVariableNames
- Имена переменных, которые нужно сохранить в сгенерированном коде'None'
(по умолчанию) | 'UserNames'
| 'All'
Имена переменных для сохранения в сгенерированном коде, заданные как одно из значений в этой таблице.
Значение | Описание |
---|---|
'None' |
Это значение является значением по умолчанию. Генератор кода не должен сохранять какие-либо имена переменных. Он может повторно использовать любые переменные, которые удовлетворяют требованиям для повторного использования переменных. Если ваш код использует большие структуры или массивы, задайте |
'UserNames' |
Генератор кода сохраняет имена, которые соответствуют переменным, которые вы задаете в коде MATLAB. Оно не заменяет ваше имя переменной другим именем и не использует ваше имя для другой переменной. Чтобы улучшить читаемость, установите Настройка |
'All' |
Сохраните все имена переменных. Это значение параметров отключает повторное использование переменной. Используйте его только для проверки или отладки, а не для производственного кода. |
ReportInfoVarName
- Имя переменной, содержащей информацию отчета генерации кода''
(по умолчанию) | вектор символовИмя переменной, в которую вы экспортируете информацию о генерации кода, заданное как вектор символов. Генератор кода создает эту переменную в базовом рабочем пространстве MATLAB. Эта переменная содержит информацию о настройках генерации кода, входных файлах, сгенерированных файлах и сообщениях генерации кода.
Смотрите Информацию отчета Генерации кода доступа Программно и кодер. Свойства ReportInfo.
ReportPotentialDifferences
- Отчетность о потенциальных различияхtrue
(по умолчанию) | false
Отчетность о потенциальных различиях, заданная в качестве одного из значений в этой таблице:
Значение | Описание |
---|---|
true | Генератор кода сообщает о потенциальных различиях в поведении между сгенерированным кодом и кодом MATLAB. Потенциальные различия перечислены на вкладке отчета генерации кода. Разность потенциалов является различием, которое происходит во время исполнения только при определенные обстоятельства. |
false | Генератор кода не сообщает о потенциальных различиях. |
Смотрите Отчеты о потенциальных различиях.
ReservedNameArray
- Имена, которые генератор кода не может использовать для функций или переменных''
(по умолчанию) | строковый массив | массив ячеек из векторов символов | вектор символовСписок имен, которые генератор кода не должен использовать для функций или переменных, заданный как строковые массивы, массив ячеек из векторов символов или вектор символов.
Несколько зарезервированных имен, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
Строковые массивы | Строковые массивы в |
Массив ячеек из символьных векторов | Массив ячеек из векторов символов в |
Векторы символов | Список зарезервированных имен, разделенных точкой с запятой в Примечание Установка нескольких записей в объектах строения кода с помощью векторов символов будет удалена в следующем релизе. Вместо этого используйте строковые массивы и массив ячеек из вектора символов. Для получения дополнительной информации см. раздел Вопросов совместимости. |
ResponsivenessChecks
- Проверки быстродействияtrue
(по умолчанию) | false
Проверки быстродействия, заданные как одно из значений в этой таблице.
Значение | Описание |
---|---|
true |
Это значение является значением по умолчанию. Можно использовать Ctrl+C, чтобы остановить выполнение сгенерированной MEX-функции. |
false |
Чтобы закончить длительную MEX-функцию, вам, возможно, придется прекратить работу MATLAB. |
См. Раздел «Проверки во время выполнения системы управления»
RowMajor
- размещение массива основной строкиfalse
(по умолчанию) | true
Генерация кода, который использует размещение массива основной строки, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false |
Сгенерируйте код, который использует размещение массива основной столбца. (Это значение является значением по умолчанию.) |
true | Сгенерируйте код, который использует размещение массива основной строки. |
См. «Генерация кода, который использует размещение массива Row-Major».
SaturateOnIntegerOverflow
- Поддержка целочисленного переполненияtrue
(по умолчанию) | false
Поддержка целочисленного переполнения, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода производит код, чтобы обработать целочисленное переполнение. Переполнения достигает минимального или максимального значения, которое может представлять тип данных. |
false | Генератор кода не производит код, чтобы обработать целочисленное переполнение. Не устанавливать |
Этот параметр применяется только к встроенным целым типам MATLAB. Он не применяется к двойным, одиночным или типам данных с фиксированной точкой.
См. «Отключить поддержку целочисленного переполнения или нефинитов».
StackUsageMax
- Максимальное использование стека в каждом приложении200000
(по умолчанию) | положительное целое числоМаксимальное использование стека для каждого приложения в байтах в виде положительного целого числа. Установите предел ниже доступного размера стека. В противном случае может произойти переполнение стека во время выполнения. Компилятор C обнаруживает и сообщает о переполнении стека.
См. Раздел «Использование пространства стека управления»
TargetLang
- Язык для использования в сгенерированном коде'C'
(по умолчанию) | 'C++'
Язык для использования в сгенерированном коде, заданный как 'C'
или 'C++'
. Если вы задаете C++, генератор кода переносит код С в файлы .cpp, чтобы можно было использовать компилятор C++ и интерфейс с внешними приложениями C++. Он не генерирует классы C++.
Зависимости: Если DeepLearningConfig
установлено, codegen
устанавливает TargetLang
на C++
.
Verbosity
- отображение прогресса генерации кода'Info'
(по умолчанию) | 'Silent'
| 'Verbose'
Отображать ли состояние прогресса генерации кода в командной строке MATLAB в виде одного из значений в этой таблице.
Значение | Описание |
---|---|
'Silent' | Если генерация кода завершается успешно без предупреждения, все сообщения подавляются, в том числе и при генерации отчета. Отображаются предупреждения и сообщения об ошибке. |
'Info' | Это значение является значением по умолчанию. По сравнению с
|
'Verbose' | В дополнение к сообщениям, показанным в |
Написать функцию MATLAB, из которой можно сгенерировать код. Этот пример использует функцию myadd
который возвращает сумму его входов.
function c = myadd(a,b) c = a + b; end
Создайте объект строения для генерации MEX-функции.
cfg = coder.config('mex');
Измените значения свойств, для которых вы не хотите использовать значения по умолчанию. Например, включите just-in-time (JIT) компиляцию.
cfg.EnableJIT = true;
Сгенерируйте код при помощи codegen
. Передайте объект строения в codegen
при помощи -config
опция. Задайте, что входные параметры скаляра двойные.
codegen myadd -config cfg -args {1 1} -report
Чтобы использовать значения параметров конфигурации по умолчанию для генерации MEX-функции, вместо создания объекта строения можно вызвать codegen
без указания объекта строения или с -config:mex
опция.
Изменение поведения в будущем релизе
В следующем релизе будут удалены несколько имен файлов, путей или зарезервированных имен в объектах строения кода с помощью векторов символов или строковых скаляров, имеющих разделители. Вместо этого используйте строковые массивы и массив ячеек вектора символов. Например, чтобы включать несколько имен папок, можно использовать или строковые массивы в CustomInclude
как cfg.CustomInclude = ["C:\Project","C:\Custom Files"];
или массив ячеек из векторов символов как cfg.CustomInclude = {'C:\Project','C:\Custom Files'};
чтобы включить путь для компиляции сгенерированного кода.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.