gpt4 book ai didi

c - 为什么 mex 代码运行得比 matlab 代码慢

转载 作者:太空宇宙 更新时间:2023-11-04 04:48:51 24 4
gpt4 key购买 nike

我用 matlab 写了一个有很多迭代的程序。它不能被矢量化,因为每次迭代中的数据处理都与前一次迭代中的数据处理相关。

然后我使用内置的 MATLAB 编码器将 matlab 代码转换为 mex,结果速度甚至更低。我不知道是否需要自己编写 mex 代码,因为 mex 代码似乎没有帮助。

最佳答案

我建议,如果可以的话,您可以与 MathWorks 取得联系,向他们征求一些建议。如果您无法做到这一点,那么我建议您认真阅读文档并在放弃之前尝试您找到的所有内容。

我发现对实现 MATLAB 代码的方式进行一些小的更改,并对项目设置进行一些小的更改(例如禁用对 Ctrl-C 的响应,对 MATLAB 的外部调用)可以提供生成的代码中速度差异一个数量级或更多。在 MathWorks 之外,没有多少人能够就哪些更改对您来说是值得/明智的提出好的建议。

我应该说我只在一个项目中使用过 MATLAB Coder,我根本不是专家(实际上什至不是称职的)C 程序员。尽管如此,我还是设法生成了混合后的原始 MATLAB 代码速度大约 10-15 倍的 C 代码。我通过以下方式实现了这一目标:a) 只是摆弄所有不同的设置以查看发生了什么,以及 b) 有条不紊地浏览文档,并查看我的 MATLAB 代码中是否有地方可以应用我遇到的任何构造(例如coder.nullcopycoder.unroll 等)。当然,您的代码可能会有很大不同。

关于c - 为什么 mex 代码运行得比 matlab 代码慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18093471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com