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

Рекомендуемые опции компиляции для 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 Graphics.

  • 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-by-1 векторами вещественных двойных значений.

Интерактивная проверка кода с использованием анализатора кода MATLAB

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

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

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

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

Отделение вашего Испытательного стенда от кода функции

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

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

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

Соглашения об именовании файлов

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

Например, соглашение об именовании файлов в учебном пособии «Создание функций MEX»:

  • Суффикс _build определяет скрипт сборки.

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

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

Для примера:

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

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