exponenta event banner

Как это происходит dspunfold Отличается от parfor?

dspunfold и parfor Функции (MATLAB Coder) ускоряют алгоритмы MATLAB ® за счет распараллеливания. Каждая функция имеет свои преимущества и недостатки .

При использовании parfor внутри функции MATLAB начальной точки и вызовите codegen в этой функции генерируемый файл MEX является многопоточным. Дополнительные сведения см. в разделе Ускорение алгоритма с использованием параллельных циклов (parfor) (кодер MATLAB). Однако parfor не идеально подходит для алгоритмов DSP. Причина в том, что алгоритмы DSP включают состояния.

Алгоритмы DSP включают состояния

Большинство алгоритмов в системных Toolbox™ DSP содержат состояния и потоковые данные. Состояния в MATLAB моделируются с использованием постоянных переменных. Поскольку parfor не поддерживает постоянные переменные, нельзя моделировать состояния с помощью parfor петли. См. раздел Глобальные или постоянные объявления в цикле Parfor-Loop (кодер MATLAB). Кроме того, между данными не может быть никакой зависимости parfor петли. Следовательно, невозможно поддерживать информацию о состоянии в этих контурах. См. раздел Когда не использовать циклы Parfor (кодер MATLAB). dspunfold преодолевает эти ограничения, поддерживая постоянные переменные.

dspunfold Введение задержки

Если ваше приложение не допускает задержки, используйте parfor вместо этого. parfor не вводит задержки. Задержка - это количество входных кадров, обработанных перед формированием первого выходного кадра.

parfor Требует значительной реструктуризации в коде

parfor требуется реструктуризация алгоритма, чтобы иметь петлеобразную структуру, независимую от итерации. Из-за семантических ограничений parfor, замена for-закольцовывание с помощью parfor-loop часто требует значительного рефакторинга кода. dspunfold не требует реструктуризации кода.

parfor Используется с dspunfold

При звонке dspunfold на начальной точке функции MATLAB, которая содержит parfor, parfor многопоточность отключена. dspunfold требования codegen с –O параметр имеет значение disable:openmp. С помощью этого набора опций parfor петли обрабатываются как for- петли. Многопоточность создаваемого MEX-файла полностью обусловлена dspunfold.

См. также

Функции

Связанные темы