Can I run eigs on a GPU?
조회 수: 15 (최근 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!