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

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

  • Параметры входа -args - Specify на примере

    Используйте опцию -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 выберите File> 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 является третьей версией тестового скрипта для этого примера.