exponenta event banner

Рекомендации по ускорению кода фиксированной точки

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

  • -args - Укажите входные параметры на примере

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

    При использовании -args вы указываете типы данных и размеры массива этих параметров, а не значения переменных. Дополнительные сведения см. в разделе Определение входных свойств по примеру в командной строке (кодер MATLAB).

    Примечание

    Кроме того, можно использовать 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. На вкладке Главная страница MATLAB (MATLAB Home) щелкните Настройки (Preferences). Выберите Code Analyzer для просмотра списка настроек анализатора кода.

  2. Установите флажок Включить интегрированные предупреждения и сообщения об ошибках.

Отделение тестового стенда от кода функции

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

Сохранение кода

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

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

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

Например, соглашение по именованию файлов в руководстве по началу работы с функциями генерации MEX:

  • Суффикс _build определяет сценарий построения.

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

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

Например:

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

  • Файл test_03.m является третьей версией тестового сценария для данного учебного пособия.