【问题标题】:Calculate eigenvalues/eigenvectors of hundreds of small matrices using CUDA使用 CUDA 计算数百个小矩阵的特征值/特征向量
【发布时间】:2012-07-09 18:51:19
【问题描述】:

我有一个关于使用 CUDA 对数百个小矩阵进行特征分解的问题。

我需要同时计算数百个(例如 500 个)小型(64×64)实对称矩阵的特征值和特征向量。我尝试通过使用国际象棋锦标赛排序的 Jacobi 方法来实现它(有关更多信息,请参阅this paper (PDF))。

在该算法中,每个块中定义了 32 个线程,而每个块处理一个小矩阵,32 个线程协同工作,对 32 个非对角元素进行膨胀直到收敛。但是,我对它的表现不是很满意。

我想知道我的问题在哪里有更好的算法,即许多 64×64 实对称矩阵的特征分解。我想户主的方法可能是一个更好的选择,但不确定它是否可以在 CUDA 中有效实施。网上有用的信息不多,因为大多数其他程序员更感兴趣的是使用 CUDA/OpenCL 来分解一个大矩阵而不是很多小矩阵。

【问题讨论】:

  • 你想计算什么?整个分解?还是只有特征值?还是只有几个特征值/特征向量?
  • 您的绩效目标是什么?你有没有花时间分析?结果如何?
  • @TimChild 是正确的 - 你的“我对它的表现不满意”并没有告诉我们太多。
  • 一飞,如果您不提供更多关于您的问题的细节,我们将无法给您任何合理的答案。
  • @yifei-huang 我们愿意提供帮助。如果您可以提供更多关于“对性能不满意”的意思的信息,它可能会有所帮助,否则我会投票关闭......

标签: matrix cuda opencl linear-algebra numerical-methods


【解决方案1】:

至少对于特征值,可以在 Cuda SDK 中找到示例

http://www.nvidia.de/content/cudazone/cuda_sdk/Linear_Algebra.html

图像似乎已损坏,但样本下载仍然有效。我建议下载完整的 SDK 并查看该示例。此外,这篇论文可能会有所帮助:

http://docs.nvidia.com/cuda/samples/6_Advanced/eigenvalues/doc/eigenvalues.pdf

【讨论】:

    猜你喜欢
    • 2019-04-27
    • 2012-08-08
    • 2018-01-25
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2011-09-29
    • 1970-01-01
    相关资源
    最近更新 更多