我有一个关于使用 CUDA 对数百个小矩阵进行特征分解的问题。
我需要同时计算数百个(例如 500 个)小(64×64)实对称矩阵的特征值和特征向量。我尝试通过使用国际象棋锦标赛排序的 Jacobi 方法来实现它(有关更多信息,请参阅本文 (PDF))。
在该算法中,每个块中定义了 32 个线程,而每个块处理一个小矩阵,32 个线程协同工作,对 32 个非对角元素进行膨胀直到收敛。但是,我对它的表现不是很满意。
我想知道我的问题在哪里有更好的算法,即许多 64×64 实对称矩阵的特征分解。我想户主的方法可能是一个更好的选择,但不确定它是否可以在 CUDA 中有效实施。网上有用的信息不多,因为大多数其他程序员更感兴趣的是使用 CUDA/OpenCL 来分解一个大矩阵而不是很多小矩阵。