Redian新闻
>
如何用CUDA同时计算几百个实对称矩阵的eigenvalues/eigenvecot (转载)
avatar
如何用CUDA同时计算几百个实对称矩阵的eigenvalues/eigenvecot (转载)# JobHunting - 待字闺中
g*t
1
【 以下文字转载自 Computation 讨论区 】
发信人: geneticdrift (不懂微积分), 信区: Computation
标 题: 如何用CUDA同时计算几百个实对称矩阵的eigenvalues/eigenvecot
发信站: BBS 未名空间站 (Mon Jul 2 02:38:51 2012, 美东)
我有一个程序要反复计算几百个(约500个)64 x 64的实对称矩阵的所有的
eigenvalues/eigenvectors。自己用CUDA实现了一个Jacobi algorithm with chess
tournament ordering。具体来说,每个block(含有32个threads)处理一个矩阵,这32
个threads并行消去一个矩阵中的32个off-diagonal elements,直到算法收敛。结果无
误,计算单个矩阵所花的时间也和最近的一篇paper里的数据接近。但是这个算法和CPU
上的library比没有太大的优势。在同时处理这500个矩阵的情况下,和GSL里面高度优
化的函数比较(用单CPU),用GPU仅仅快了一倍。我觉得主要是Jacobi algorithm对于这
个大小的矩阵效率太差,而GSL里面的函数用的好像是QR decomposition,虽然只有一
个thread但是效率很高。有没有比较适合我的问题的能在GPU上高效执行的算法?有没
有什么paper/code可以参考的?先谢谢了。
avatar
c*p
2
因为里面的控制流太多了吧。

32
CPU

【在 g**********t 的大作中提到】
: 【 以下文字转载自 Computation 讨论区 】
: 发信人: geneticdrift (不懂微积分), 信区: Computation
: 标 题: 如何用CUDA同时计算几百个实对称矩阵的eigenvalues/eigenvecot
: 发信站: BBS 未名空间站 (Mon Jul 2 02:38:51 2012, 美东)
: 我有一个程序要反复计算几百个(约500个)64 x 64的实对称矩阵的所有的
: eigenvalues/eigenvectors。自己用CUDA实现了一个Jacobi algorithm with chess
: tournament ordering。具体来说,每个block(含有32个threads)处理一个矩阵,这32
: 个threads并行消去一个矩阵中的32个off-diagonal elements,直到算法收敛。结果无
: 误,计算单个矩阵所花的时间也和最近的一篇paper里的数据接近。但是这个算法和CPU
: 上的library比没有太大的优势。在同时处理这500个矩阵的情况下,和GSL里面高度优

avatar
s*0
3
What's the model of the GPU?
And, did you try using the NVIDIA SDK eigenvalue code?
avatar
g*t
4
显卡用的是tesla M2070 (Fermi generation)。已经看过了cuda SDK里面的例子,但是
那个是bisection algorithm,貌似这个算法只能算eigenvalues,不能算eigenvectors?

【在 s***0 的大作中提到】
: What's the model of the GPU?
: And, did you try using the NVIDIA SDK eigenvalue code?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。