主要内容

是如何dspunfold不同于parfor吗?

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

当你使用parfor在入口点MATLAB函数,调用codegen在这个函数,生成的墨西哥人文件是多线程的。有关更多信息,请参见并行算法的加速使用for循环(parfor)(MATLAB编码器)。然而,parfor不是理想的DSP算法。原因是DSP算法涉及的状态。

DSP算法涉及州

大多数算法在DSP系统工具箱™包含状态和流数据。在MATLAB建模使用持久性变量。因为parfor不支持持久变量,您万博1manbetx不能使用这些模型状态parfor循环。看到全球或持续parfor-Loop声明(MATLAB编码器)。此外,你不能有任何数据依赖性parfor循环。因此,你不能保持状态信息在这些循环。看到当不使用parfor-Loops(MATLAB编码器)dspunfold克服这些限制通过支持持续的变量。万博1manbetx

dspunfold介绍了延迟

如果您的应用程序不容忍延迟,使用parfor代替。parfor不引入延迟。延迟是输入帧的数量加工之前生成第一个输出帧。

parfor在代码中需要大量的重组

parfor需要你调整你的算法有一个循环迭代的独立结构。由于语义的限制parfor更换一个循环用parfor循环通常需要大量的代码重构。dspunfold不需要你调整你的代码。

parfor使用dspunfold

当你打电话dspunfoldMATLAB函数包含在一个入口点parfor,parfor多线程是禁用的。dspunfold调用codegen- o选项设置为禁用:openmp。采用这一选项设置,parfor循环被视为——循环。多线程的行为完全是由于生成的墨西哥人的文件dspunfold

另请参阅

功能

相关的话题