是如何dspunfold
不同于parfor
吗?
的dspunfold
和parfor
(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
当你打电话dspunfold
MATLAB函数包含在一个入口点parfor
,parfor
多线程是禁用的。dspunfold
调用codegen
与- o
选项设置为禁用:openmp
。采用这一选项设置,parfor
循环被视为为
——循环。多线程的行为完全是由于生成的墨西哥人的文件dspunfold
。
另请参阅
功能
相关的话题
- 生成代码与平行的for循环(parfor)(MATLAB编码器)
- 并行算法的加速使用for循环(parfor)(MATLAB编码器)
- MATLAB算法加速(MATLAB编码器)