Can I run eigs on a GPU?
19 次查看(过去 30 天)
显示 更早的评论
I see 'eig' in the list of functions that run on a GPU via the Parallelization toolkit, for which I have a license.
I do not see 'eigs' on this list. Is 'eigs' an omission in the list, or is 'eigs' really not supported for GPU use?
I only need the Fiedler eigenvalue (first non-zero eigenvalue) and the largest eigenvalue of the a large, real, symmetric, 2D matrix.
By large, I mean n=100s-1000s.
This computation takes 90+% of the CPU time for my problem without GPU computation.
Hence, the need for eigs to compute the two eigenvalues that I need.
0 个评论
回答(2 个)
Walter Roberson
2020-8-9
编辑:Walter Roberson
2020-8-9
eigs really is not supported. https://www.mathworks.com/matlabcentral/answers/572377-accelerate-eigs-with-gpu#answer_472900
0 个评论
Michael Kleder
2022-11-12
编辑:Michael Kleder
2022-11-12
If it helps, matrix-vector multiplication is supported on a GPU and the first eigenpair can be determined pretty quickly by iteration. (cf https://courses.engr.illinois.edu/bioe298b/sp2018/Course%20Notes%20(Text)/Chapter09.pdf ) For example:
n=7000;C=gpuArray(randn(n));evec=gpuArray(ones(size(C,1),1));
tic;for n=1:1000;evec=C*evec;evec=evec./sqrt(sum(evec.^2));end;evalu=evec\(C*evec);toc
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Mathematics and Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!