кодер. MexConfig

Пакет: кодер

Ускоряющая настройка кода возражает для использования с fiaccel

Описание

Объект coder.MexConfig содержит все параметры конфигурации, что fiaccel функционирует использование при ускорении фиксированной точки через сгенерированную MEX-функцию. Чтобы использовать этот объект, сначала создайте его с помощью строчной функции coder.mexconfig и затем, передайте его функции fiaccel использование опции -config.

Конструкция

cfg = coder.mexconfig создает объект coder.MexConfig, cfg, для генерации MEX-функции fiaccel.

Свойства

CompileTimeRecursionLimit

Для рекурсии времени компиляции управляйте количеством копий функции, которые позволены в сгенерированном коде. Чтобы запретить рекурсию в коде MATLAB®, установите CompileTimeRecursionLimit на 0. Предел рекурсии времени компиляции по умолчанию достаточно высок для большинства рекурсивных функций, которые требуют рекурсии времени компиляции. Если генерация кода перестала работать из-за предела рекурсии времени компиляции, и вы хотите рекурсию времени компиляции, пытаетесь увеличить предел. Также измените свой код MATLAB так, чтобы генератор кода использовал рекурсию во время выполнения

Значение по умолчанию: integer, 50

ConstantFoldingTimeout

Максимальное количество постоянных инструкций по папке

Задайте, как положительное целое число, максимальное количество инструкций, которые будут выполняться постоянной папкой.

Значение по умолчанию: 10000

DynamicMemoryAllocation

Динамическое выделение памяти для данных переменного размера

По умолчанию, когда это свойство установлено в 'Threshold', динамическое выделение памяти включено для всех массивов переменного размера, размер которых больше, чем DynamicMemoryAllocationThreshold и fiaccel выделяют память для этих данных переменного размера динамически по куче. Установите это свойство на 'Off' выделять память статически на стеке. Установите его to'AllVariableSizeArrays' выделять память для всех массивов переменного размера динамически на куче. Необходимо использовать динамическое выделение памяти для всех неограниченных данных переменного размера.

Это свойство, DynamicMemoryAllocation, включено только, когда EnableVariableSizing является true. Когда вы устанавливаете DynamicMemoryAllocation на `Threshold', он включает свойство DynamicMemoryAllocationThreshold.

Значение по умолчанию: Threshold

DynamicMemoryAllocationThreshold

Порог выделения памяти

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

Значение по умолчанию: 65536

EnableAutoExtrinsicCalls

Задайте, обрабатывает ли fiaccel общие функции визуализации как внешние функции. Когда эта опция включена, fiaccel обнаруживает вызовы многих общих функций визуализации, таких как plot, disp и figure. Это обращается к MATLAB для этих функций. Эта возможность уменьшает количество времени, что вы тратите создание вашего кода, подходящего для генерации кода. Это также удаляет требование, чтобы объявить эти функции внешнее использование функции coder.extrinsic.

Значение по умолчанию: true

EchoExpressions

Покажите результаты кода, не отключенного с точками с запятой

Установите это свойство на true иметь результаты инструкций кода, которые не останавливаются с точкой с запятой, появляются в Окне Команды MATLAB. Если вы устанавливаете это свойство на false, результаты кода не появляются в Окне Команды MATLAB.

Значение по умолчанию: true

EnableRuntimeRecursion

Позвольте рекурсивные функции в сгенерированном коде. Если ваш код MATLAB требует рекурсии во время выполнения, и этим параметром является false, сбои генерации кода.

Значение по умолчанию: true

EnableDebugging

Скомпилируйте сгенерированный код в режиме отладки

Установите это свойство на true компилировать сгенерированный код в режиме отладки. Установите это свойство на false компилировать код в режиме normal mode.

По умолчанию: false

EnableVariableSizing

Поддержка массивов переменного размера

Установите это свойство на true включать поддержку массивов переменного размера и включать свойство DynamicMemoryAllocation. Если вы устанавливаете это свойство на false, массивы переменного размера не поддержаны.

Значение по умолчанию: true

ExtrinsicCalls

Внешние вызовы функции

Внешняя функция является функцией на пути MATLAB, который сгенерированный код отправляет программному обеспечению MATLAB для выполнения. fiaccel не компилирует или генерирует код для внешних функций. Установите это свойство на true иметь fiaccel, генерируют код для вызова функции MATLAB, но не генерируют внутренний код функции. Установите это свойство на false иметь fiaccel, игнорируют внешнюю функцию и не генерируют код для вызова функции MATLAB. Если внешняя функция влияет на вывод fiaccel, ошибка компилятора происходит.

ExtrinsicCalls влияет, как MEX-функции, созданные fiaccel, генерируют случайные числа при использовании rand MATLAB, randi и функций randn. Если внешние вызовы включены, сгенерированная MEX-функция использует глобальный поток случайных чисел MATLAB, чтобы сгенерировать случайные числа. Если внешние вызовы не включены, MEX-функция, созданная с fiaccel, использует автономный генератор случайных чисел.

Если вы отключаете внешние вызовы, сгенерированная MEX-функция не может отобразить сообщения во время выполнения от операторов error или assert в вашем коде MATLAB. MEX-функция сообщает, что не может отобразить сообщение об ошибке. Чтобы видеть сообщение об ошибке, включите внешние вызовы функции и сгенерируйте MEX-функцию снова.

Значение по умолчанию: true

GenerateReport

Отчет генерации кода

Установите это свойство на true создавать отчет генерации кода HTML. Установите это свойство на false не создавать отчет.

По умолчанию: false

GlobalDataSyncMethod

Синхронизация глобальных данных MEX-функции с глобальной рабочей областью MATLAB

Установите это свойство на SyncAlways, так синхронизируйте глобальные данные при входе и выходе MEX-функции и для всех внешних вызовов, чтобы гарантировать максимальную непротиворечивость между MATLAB и сгенерированной MEX-функцией. Если внешние вызовы не влияют на глобальные данные, используйте эту опцию в сочетании с опцией -sync:off coder.extrinsic, чтобы выключить синхронизацию для этих вызовов, чтобы максимизировать производительность.

Если вы устанавливаете это свойство на SyncAtEntryAndExits, глобальные данные синхронизируются только при входе и выходе MEX-функции. Если ваш код содержит внешние вызовы, но только некоторые влияют на глобальные данные, используйте эту опцию в сочетании с опцией -sync:on coder.extrinsic, чтобы включить синхронизацию для этих вызовов, чтобы максимизировать производительность.

Если вы устанавливаете это свойство на NoSync, никакая синхронизация не происходит. Гарантируйте, что ваша MEX-функция не взаимодействует с глобальными переменными MATLAB прежде, чем отключить синхронизацию в противном случае, несоответствия между MATLAB и MEX-функцией могут произойти.

Значение по умолчанию: SyncAlways

InlineStackLimit

Сложите размер для встроенных функций

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

Значение по умолчанию: 4000

InlineThreshold

Максимальный размер функций, которые будут встроены

Задайте, как положительное целое число, максимальный размер функций, которые будут встроены.

Значение по умолчанию: 10

InlineThresholdMax

Максимальный размер функций после встраивания

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

Значение по умолчанию: 200

IntegrityChecks

Целостность памяти

Установите это свойство на true обнаруживать любые нарушения целостности памяти в коде, сгенерированном для MATLAB. Когда нарушение обнаруживается, остановки выполнения и диагностические индикаторы сообщения. Установите это свойство на false отключать и проверки целостности памяти и стек этапа выполнения.

Значение по умолчанию: true

LaunchReport

Отображение отчета генерации кода

Установите это свойство на true открывать отчет генерации кода HTML автоматически, когда генерация кода завершится. Установите это свойство на false отключать отображение отчета автоматически. Это свойство применяется, только если вы устанавливаете свойство GenerateReport на true.

Значение по умолчанию: tRUE

ReportPotentialDifferences

Задайте, сообщить ли о потенциальных различиях в поведении между сгенерированным кодом и кодом MATLAB. Если ReportPotentialDifferences является true, отчет генерации кода имеет вкладку, которая перечисляет разности потенциалов. Разность потенциалов является различием, которое происходит во время выполнения только при определенных обстоятельствах.

Значение по умолчанию: true

ResponsivenessChecks

Проверки скорости отклика

Установите это свойство на true включать проверки скорости отклика. Установите это свойство на false отключать проверки скорости отклика.

Значение по умолчанию: true

SaturateOnIntegerOverflow

Действие целочисленного переполнения

Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. Установите это свойство на true иметь переполнение, насыщают. Установите это свойство на false иметь переполнение, переносятся к соответствующему значению, представимому, по условию вводят.

Значение по умолчанию: true

StackUsageMax

Максимальное использование стека на приложение

Задайте, как положительное целое число, максимальное использование стека на приложение в байтах. Установите предел, который ниже, чем доступный размер стека. В противном случае переполнение стека этапа выполнения может произойти. Переполнение обнаруживает и сообщает компилятор C, не fiaccel.

Значение по умолчанию: 200000

Копировать семантику

Указатель. Чтобы изучить, как классы Handle влияют на операции копии, смотрите Копирование Объектов (MATLAB).

Примеры

Используйте нижний регистр coder.mexconfig функция, чтобы создать кодер. Объект настройки MexConfig. Установите этот объект отключить проверки на этапе выполнения.

cfg = coder.mexconfig
% Turn off Integrity Checks, Extrinsic Calls, 
% and Responsiveness Checks
cfg.IntegrityChecks = false;
cfg.ExtrinsicCalls = false;
cfg.ResponsivenessChecks = false;
% Use fiaccel to generate a MEX function for file foo.m
fiaccel -config cfg foo