我正在运行一个Conjugate Gradient算法来求解一个大小为96 x 96的线性系统。使用相同的代码,相同的迭代次数和相同的精度(双精度),Geforce 480的耗时约为33.6 ms,而在特斯拉C2070上大约是132.1毫秒,几乎是Geforce 480的4倍!
这对你来说是否正常?有没有人经历过类似的结果,或者我做错了什么?
非常感谢!
答案 0 :(得分:0)
寻找共轭梯度时,在这篇文章中磕磕绊绊。
对于这个矩阵大小(96x96),共轭梯度只是矫枉过正:你可以使用Cholesky分解,这应该快得多。 同样地,使用GPU似乎并不实用,除非您并行解决其中的一堆。
对于性能差异,可能有各种解释,但我建议CG算法的迭代部分可能是限制性的 - 由于系统的大小,再次:Geforce可能在延迟方面更好并与之通信CPU。