生成一个文件从一个多线程的墨西哥人MATLAB函数
当您调用dspunfold
在一个入口点MATLAB函数,dspunfold
生成以下文件。
文件 |
价值 |
描述 |
例子 |
---|---|---|---|
多线程的墨西哥人文件 |
墨西哥人文件 |
多线程的墨西哥人文件产生的MATLAB函数入口点。墨西哥人文件继承了 |
|
多线程的墨西哥人的帮助文件的文件 |
MATLAB文件 |
MATLAB多线程墨西哥人文件的帮助文件。帮助文件名称相同的墨西哥人文件,但是有一个”。米的扩展。调用帮助文件,类型 这个帮助文件显示关于如何调用墨西哥人文件的信息,它的语法, |
|
单线程的墨西哥人文件 |
墨西哥人文件 |
单线程的墨西哥人文件产生的MATLAB函数入口点。墨西哥人文件继承了 |
|
单线程的墨西哥人的帮助文件的文件 |
MATLAB文件 |
MATLAB单线程的墨西哥人文件的帮助文件。帮助文件名称相同的墨西哥人文件,但是有一个”。米的扩展。调用帮助文件,类型 帮助文件显示了如何调用墨西哥人的信息文件,它的语法,和类型(大小、类和复杂性)的墨西哥人的输入文件。语法来调用墨西哥人文件应该是一样的在帮助文件中所示的语法。 |
|
自我诊断分析仪功能 |
p代码文件 |
分析器的输入必须的第一个维度对应输入的第一个维度的倍数,给了 分析器继承了 |
|
帮助文件的自我诊断分析仪的功能 |
MATLAB文件 |
帮助文件的自我诊断分析仪的功能。帮助文件名称相同的墨西哥人文件,但是有一个”。米的扩展。调用帮助文件,类型 自我诊断分析仪功能的帮助文件显示信息如何调用分析器的功能,它的语法,和类型(大小、类和复杂性)分析器的输入功能。要调用的语法分析器功能应该是一样的在帮助文件中所示的语法。 |
|
一般的局限性:
在Windows和Linux,您必须使用一个编译器,它支持开放的多处理(OpenMP)应用程序接口。万博1manbetx看到万博1manbetx支持编译器。
如果输入MATLAB函数运行时错误,错误不被当您运行多线程墨西哥人文件。在你使用dspunfold
函数,调用codegen
在MATLAB函数和确保墨西哥人文件生成成功。
如果生成的代码使用了大量的内存来存储本地变量,4
MB
在Windows平台上,生成的多线程墨西哥人文件可以有意想不到的行为。这个极限随每个平台。作为一个解决方案,降低输入信号的大小或重组MATLAB函数使用更少的本地内存。
dspunfold
不支持:万博1manbetx
分析仪的局限性:
以下限制适用于分析器生成的函数dspunfold
函数。分析仪功能的更多信息,请参阅“自我诊断分析仪”的“更多”部分dspunfold
。
如果分析仪的多个帧输入完全相同,分析器可能会把假阳性结果。建议您至少提供两种不同的帧的每个输入分析器。
如果入口点的算法MATLAB函数选择其状态长度根据输入值,分析器可能会提供不同的通过结果不同的输入值。例如,看到FIR_Mean
函数为什么分析器选错国家长度?。
如果入口点的输入MATLAB函数并立即影响输出,分析器会把假阳性通过结果。例如,看到Input_Output
函数为什么分析仪选择零状态的长度?。
如果输出结果多线程墨西哥人文件和单线程的墨西哥人文件匹配统计但数字不匹配,分析器不通过。考虑到FilterNoise
函数,该过滤器一个随机噪声信号数字滤波器。的函数调用randn
从内部本身产生随机噪声。因此,输出的结果FilterNoise
数值函数匹配统计但不匹配。
函数输出= FilterNoise (x)持续的FIRFilter如果isempty (FIRFilter) FIRFilter = dsp.FIRFilter (“分子”0.4 fir1 (12));结束输出= FIRFilter (x + randn (1000 1));结束
FilterNoise
长度,该工具检测到一个无限的状态。因为该工具不能找到一个数值匹配长度有限状态,它选择长度无限状态。
dspunfoldFilterNoisearg游戏{randn (1000 1)}- s汽车
分析输入MATLAB函数文件FilterNoise_st FilterNoise创建线程的墨西哥人。mexw64寻找最小状态长度(这可能需要一段时间)检查无状态……检查不足1…检查不足无限……充分检查2…不足最小状态长度是Inf文件FilterNoise_mt创建多线程的墨西哥人。mexw64警告:由于性能考虑多线程是禁用的。这发生在当状态长度大于或等于(Threads-1) *重复帧(3帧在这种情况下)。>在coder.internal.warning(第8行)在unfoldingEngine / BuildParallelSolution(25)行unfoldingEngine /生成(第207行)dspunfold FilterNoise_analyzer(第234行)创建分析器文件
该算法不需要无限的状态。冷杉滤波器的长度,因此该算法12
。
调用dspunfold
与国家长度设置为12。
dspunfoldFilterNoisearg游戏{randn (1000 1)}- s12- f真正的
分析输入MATLAB函数文件FilterNoise_st FilterNoise创建线程的墨西哥人。mexw64创建多线程文件FilterNoise_mt墨西哥人。FilterNoise_analyzer mexw64创建分析器文件
运行分析功能。
FilterNoise_analyzer (randn (1000 * 4,1))
分析多线程文件FilterNoise_mt墨西哥人。mexw64……加速延迟= 8帧= 0.5 x警告:FilterNoise_mt多线程墨西哥人的输出结果文件。mexw64不匹配的输出结果文件FilterNoise_st.mexw64单线程的墨西哥人。检查您提供正确的状态长度值dspunfold函数当你生成了多线程文件FilterNoise_mt.mexw64墨西哥人。最佳实践和可能解决这个问题,请参见“提示”部分dspunfold万博 尤文图斯函数引用页面。>在coder.internal.warning(第8行)FilterNoise_analyzer ans =延迟:8加速:0.4970通过:0
分析器寻找一个数值匹配和验证失败,虽然生成的多线程墨西哥人文件是有效的。
加速的局限性:
如果入口点MATLAB函数包含代码复杂性较低,MATLAB开销或多线程的墨西哥人的开销超过任何性能收益。在这种情况下,不要使用dspunfold
。
如果操作的输入MATLAB函数的数量小于输入或输出数据的大小,多线程的墨西哥人文件不提供任何加速收益。有时,它会导致加速损失,即使重复值增加。在这种情况下,不要使用dspunfold
。
一般
不显示情节、范围或执行其他用户界面操作在多线程墨西哥人文件。生成的墨西哥人文件可以有意想不到的行为。
不要使用coder.extrinsic
在输入MATLAB函数。生成的墨西哥人文件可以有意想不到的行为。
当国家长度小于或等于(线程- 1
)×重复帧:
不要使用一个随机数在MATLAB函数。单线程的墨西哥人的输出文件和多线程的墨西哥人文件可能不匹配。同时,输出的连续执行多线程墨西哥人文件可能不匹配。分析器可能不会通过数值匹配的验证。
建议您生成随机数的入口点外的MATLAB函数并将它作为参数传递给函数。
不要使用全局或持续变量以外的其他任何地方的MATLAB函数入口点。例如,在子函数中避免使用持久性变量。生成的墨西哥人文件可以产生不准确的结果。一般来说,全局变量不推荐。
不从在多线程访问I / O资源墨西哥人文件。生成的墨西哥人文件可以有意想不到的行为。这些资源包括文件作者和读者,UDP套接字,音频播放器和录音机。
不要使用功能与交互式输入(例如,键盘)在多线程墨西哥人文件。生成的墨西哥人文件可以有意想不到的行为。
工作流
生成一个有效的多线程墨西哥人文件所需的加速和延迟,遵循生成一个多线程的工作流使用dspunfold墨西哥人文件。
使用前dspunfold
,叫codegen
入口点的MATLAB函数和确保函数生成一个墨西哥人文件成功。
在生成文件使用多线程的墨西哥人dspunfold
,运行分析功能。通过确保分析仪功能。这条规则的例外是当该算法产生的结果匹配数据,而不是数字。在这个异常,分析仪功能没有通过
,即使dspunfold
函数生成一个有效的多线程墨西哥人文件。看到“分析仪限制”为例。
帮忙在使用墨西哥人文件和分析仪,在MATLAB命令提示符,输入帮助
和< mexfile名称>
帮助
。<分析仪名称>
国家长
如果你选择一个状态长度大于或等于价值的确切状态长度,分析器。如果分析仪失败,增加长度,重新生成墨西哥人文件,并再次验证。
如果政府长度大于0
(通过输入标记为帧- f
选项)都必须有相同的尺寸。
墨西哥人文件生成并运行分析器时,使用输入,调用相同的长度。
自动状态长度检测
当您设置- s
来汽车
:
如果入口点的算法MATLAB函数选择基于输入值的代码路径,使用输入,选择最长状态的代码路径长度。
提供随机输入arg游戏
。
选择输入输出具有立竿见影的效果。看到为什么分析仪选择零状态的长度?。
分析仪
确保多线程墨西哥人的输出文件和文件不包含单线程的墨西哥人南
或者一个正
。分析仪不能数字检查并返回通过
作为假
。自动状态长度检测工具检测到无限的状态并显示一个警告
多线程的墨西哥人的输出结果文件不匹配的输出结果无限状态的线程甚至墨西哥人文件长度。一个可能的原因是,输入MATLAB函数生成不同的输出结果之间的连续运行即使对于相同的输入值。
提供多个帧不同的分析仪的每个输入值。提高分析仪有效性、附加连续帧的第一个维度。
提供分析器的输入,导致有效的代码覆盖率。
加速
提高多线程加速的墨西哥人文件,指定具体的国家样本长度。您可以指定国家长度的样品通过设置至少一个条目frameinputs
来真正的
。样品的使用减少了开销,提高了加速。
增加加速的代价更大的延迟,您可以:
增加重复的因素。使用- r
选择。
增加线程的数量。使用- t
选择。
对每个输入,可分为样品在不改变算法的行为,设置帧状态真正的
使用- f
选择。然后考虑输入样本,可以增加加速生成的多线程的墨西哥人文件。
多线程多墨西哥人文件缓冲信号帧的缓冲2
×线程×重复帧,线程是线程的数量,和重复是重复的因素。墨西哥人文件同时处理这些帧,使用多个内核。这个过程介绍了确定性延迟,延迟=2
×线程×重复。延迟交易与加速你可能获得通过增加线程的数量或重复的因素。