我有一个关于 MATLAB 软件构建的加速应用程序的问题,我需要知道使用矢量化和并行计算对加速应用程序的影响?在这种情况下是否有比以前两种方法更好的方法?谢谢
问问题
110 次
1 回答
3
当您的 MATLAB 代码运行速度太慢时,您需要做的第一件事就是在分析器中运行它。在最新版本的 MATLAB 中,这可以通过按主工具栏上的“运行和时间”按钮来完成。这样,您现在将知道哪些函数以及这些函数中的哪些行占用的时间最多。一旦你知道了这一点,你可以根据你的情况和特定代码的性质执行以下操作之一:
- 考虑一下您的算法是否是 O() 复杂度方面最优化的算法。
- 尝试将循环转换为向量操作。由于循环执行方式的改进,在最近版本的 MATLAB 中,这种方法的效果有所下降。
- 如果您有一个多核 CPU,请尝试使用并行计算工具箱。如果您的代码并行化得很好,您将获得几乎等于内核数量的加速。
- 如果您有 nVidia GPU,请尝试使用GPU 支持。对于某些问题,您可以将速度提高 10 倍或更多,但并非所有问题都适合这种优化。
- 如果其他一切都失败了,您可能会将最慢的代码部分外包给 C 等低级语言。请参阅此处了解如何执行此操作。然后,您可以使用英特尔 vTune 等低级分析工具从低级代码中获得绝对最大速度。
- 如果仍然太慢,您可能需要购买 FPGA。请参阅此处以获取简短教程。
于 2013-10-11T14:46:04.537 回答