在GPU上计算特征值和特征向量的性能很差

Ope*_*way 6 c++ cuda gpgpu linear-algebra

在一些代码中,我们需要获得具有对称实矩阵(Ax = lamba Bx)的广义特征值问题的自动向量和自动值.此代码使用LACPACK中的DSPGVX.我们希望使用MAGMA功能在GPU上加速.我们在这个论坛上询问并得到了关于此的答案

http://icl.cs.utk.edu/magma/docs/zhegvx_8cpp.html

我们的矩阵(N)的大小从100到50000甚至更多,与分子中的原子数有关.我们观察到:

a)对于大于2500(大约)的N,MAGMA不起作用; 分段错误b)MAGMA运行总是比LAPACK顺序慢,大约慢10倍

这种行为是否正常,我们可以克服它吗?任何人都可以报告任何参与此类问题的人获得体面加速的情况吗?

谢谢

Dav*_*nan 4

根据我的经验,您可以通过切换到更好的特征求解器来获得更大的性能优势。我所知道的最好的求解器是ARPACK。如果您的矩阵具有某种结构(例如稀疏矩阵),您将获得最大的好处。如果您只需要提取特征对总数的一小部分,那么该求解器也是最有效的。

我首先会尝试使用这个求解器来解决仅在 CPU 上运行的问题。您可能会发现仅此一项就足以满足您的需求。如果没有,那么将 ARPACK 的计算核心移至 GPU 上相对容易。或者,有 ARPACK 的并行版本可用。