主要内容

怎么dspunfold不同于parfor

dspunfoldparfor(MATLAB编码器)功能加速MATLAB®通过并行化算法。每个功能都有自己的优势和缺点。

当您使用时parfor在入口点MATLAB功能中,并致电代码根在此函数上,生成的MEX文件是多线程。有关更多信息,请参阅使用平行的横环(PARFOR)的算法加速度(MATLAB编码器)。然而,parfor对于DSP算法不是理想的选择。原因是DSP算法涉及状态。

DSP算法涉及状态

DSP System Toolbox™中的大多数算法都包含状态和流数据。MATLAB中的状态是使用持久变量建模的。因为parfor不支持持久变量,您金宝app无法使用parfor循环。看parfor-loop中的全球或持续声明(MATLAB编码器)。此外,您不能跨越任何数据依赖性parfor循环。因此,您无法在这些循环中维护状态信息。看当不使用parfor-loops(MATLAB编码器)dspunfold通过支持持续变量来克服这些限制。金宝app

dspunfold引入延迟

如果您的应用程序不忍受延迟,请使用parfor反而。parfor不引入延迟。延迟是生成第一个输出帧之前处理的输入帧数。

parfor需要重大重组代码

parfor要求您重组算法以独立于迭代的循环状结构。由于语义限制parfor,更换为了- 环parfor- 环通常需要重大的代码重构。dspunfold不需要您重组代码。

parfordspunfold

你打电话时dspunfold在包含的入口点MATLAB函数上parfor,,,,parfor多线程被禁用。dspunfold呼叫代码根–o选项设置为禁用:OpenMP。使用此选项集,parfor循环被视为为了- 循环。生成的MEX文件的多线程行为完全归功于dspunfold

也可以看看

功能

相关话题