如何提高标准矩阵加法算法的效率?
矩阵由二维数组表示,并按顺序相加。
发布于 2011-07-28 20:08:47
我不会读你所有的代码。正如我所看到的,这是添加部分
for(i=0;i<r1;i++)
for(j=0;j<c1;j++)
C[i][j]=A[i][j]+B[i][j];我不认为这可以在复杂性方面得到改善。至于其他类型的微优化,比如执行++i而不是i++,或者改变循环的顺序等等--我认为你不应该关心这些,直到你运行了一个分析器,它会告诉你这些是你的性能瓶颈。请记住,过早优化是所有邪恶的根源:)
发布于 2011-07-28 21:50:23
简单的double for循环对于可移植代码来说非常接近最佳,只要您以正确的顺序获得两个for循环即可。您需要按顺序访问内存才能获得最佳性能。
您可以展开循环,但这不会对性能产生太大影响。
如果你想要最好的性能,那就不要自己写,而是使用针对你的平台进行了优化的BLAS。
发布于 2011-07-28 21:56:16
您可以尝试使用GPU而不是CPU来执行密集型操作。您可以使用AMP来完成此操作。
https://stackoverflow.com/questions/6858664
复制相似问题