Лучшые практики для ускорения фиксированной точки

Рекомендуемые Параметры компиляции для fiaccel

  • -args – Задайте входные параметры на примере

    Используйте -args опция, чтобы задать свойства первичной функции вводит как массив ячеек значений в качестве примера в то же время, что и вы генерируете код для файла MATLAB® с fiaccel. Массив ячеек может быть переменным или литеральным массивом постоянных значений. Массив ячеек должен обеспечить тот же номер и порядок входных параметров как первичная функция.

    Когда вы используете -args опция вы задаете типы данных и измерения массива этих параметров, не значения переменных. Для получения дополнительной информации смотрите, Задают Входные свойства на примере в Командной строке (MATLAB Coder).

    Примечание

    В качестве альтернативы можно использовать assert функция, чтобы задать свойства первичной функции вводит непосредственно в вашем файле MATLAB. Для получения дополнительной информации смотрите, Задают Входные свойства Программно в файле MATLAB.

  • -report – Сгенерируйте отчет генерации кода

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

    Отчет генерации кода содержит следующую информацию:

    • Сводные данные результатов генерации кода, включая тип цели и количество предупреждений или ошибок

    • Создайте журнал, который записывает сборку и соединение действий

    • Ссылки на сгенерированные файлы

    • Сообщения об ошибке и предупреждающие сообщения (если таковые имеются)

Для получения дополнительной информации смотрите fiaccel.

Создайте скрипты

Используйте скрипты сборки, чтобы вызвать fiaccel сгенерировать MEX-функции от вашей функции MATLAB.

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

Этот пример показывает скрипт сборки, чтобы запустить fiaccel обработать lms_02.m:

close all;
clear all;
clc;

N = 73113;

fiaccel  -report lms_02.m ...
  -args { zeros(N,1) zeros(N,1) }  
В этом примере происходят следующие действия:

  • close all удаляет все фигуры, указатели которых не скрыты. Смотрите close в ссылке на функцию Графики MATLAB для получения дополнительной информации.

  • clear all удаляет все переменные, функции и файлы MEX из памяти, оставляя рабочую область пустой. Эта команда также очищает все точки останова.

    Примечание

    Удалите clear all команда из скриптов сборки, если вы хотите сохранить точки останова для отладки.

  • clc очищает весь ввод и вывод от отображения Командного окна, давая вам “чистый экран”.

  • N = 73113 устанавливает значение переменной N, который представляет количество выборок в каждом из двух входных параметров для функционального lms_02

  • fiaccel -report lms_02.m -args { zeros(N,1) zeros(N,1) } вызовы fiaccel ускорять симуляцию файла lms_02.m использование следующих опций:

    • -report генерирует отчет генерации кода

    • -args { zeros(N,1) zeros(N,1) } задает свойства входных параметров функции как массив ячеек значений в качестве примера. В этом случае входные параметры являются векторами N-1 действительных, удваивается.

Контрольный код в интерактивном режиме Используя код MATLAB Анализатор

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

Чтобы гарантировать, что непрерывная проверка кода включена:

  1. На вкладке MATLAB Home нажмите Preferences. Выберите Code Analyzer, чтобы просмотреть список настроек анализатора кода.

  2. Установите флажок Enable integrated warning and error messages.

Разделение испытательного стенда из функционального кода

Разделите свой основной алгоритм от вашего испытательного стенда. Создайте отдельный тестовый скрипт, чтобы сделать весь пред - и последующая обработка, такая как загрузка входных параметров, входных значений подготовки, вызывание функции под тестом и вывода результатов испытаний. Смотрите пример на fiaccel страница с описанием.

Сохранение вашего кода

Сохраните свой код прежде, чем сделать дальнейшие модификации. Эта практика обеспечивает нейтрализацию в случае ошибки и базовой линии для тестирования и валидации. Используйте сопоставимое соглашение о присвоении имен файла, как описано в Соглашениях о присвоении имен Файла. Например, добавьте 2-разрядный суффикс в имя файла для каждого файла в последовательности. В качестве альтернативы используйте систему управления версиями.

Соглашения о присвоении имен файла

Используйте сопоставимое соглашение о присвоении имен файла идентифицировать различные типы и версии ваших файлов MATLAB. Этот подход сохраняет ваши файлы организованными и минимизирует риск перезаписи существующих файлов или создания двух файлов с тем же именем в различных папках.

Например, соглашение о присвоении имен файла в Генерирующихся MEX-функциях, начинающих пример:

  • Суффиксный _build идентифицирует скрипт сборки.

  • Суффиксный _test идентифицирует тестовый скрипт.

  • Числовой суффикс, например, _01 идентифицирует версию файла. Эти числа обычно являются 2D цифрой последовательные целые числа, начинаясь 01, 02, 03, и так далее.

Например:

  • Файл build_01.m первая версия скрипта сборки для этого примера.

  • Файл test_03.m третья версия тестового скрипта для этого примера.