Can I run eigs on a GPU?
16 ビュー (過去 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 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!