Can I run eigs on a GPU?

16 ビュー (過去 30 日間)
Lee Hively
Lee Hively 2020 年 8 月 9 日
編集済み: Michael Kleder 2022 年 11 月 12 日
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.

回答 (2 件)

Walter Roberson
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

Michael Kleder
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

カテゴリ

Help Center および File ExchangeLinear Algebra についてさらに検索

タグ

製品


リリース

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by