Accelerate eigs with GPU
조회 수: 15 (최근 30일)
이전 댓글 표시
Dear all,
I have implemented a numerical solver (of the Fokker-Planck equation) in MATLAB.
At some point, the algorithm needs to calculate
eigs(L, 1, 0)
of a very large sparse matrix L.
I would like to perform this calculation on a GPU to lower the computational costs. So, I created the array
Lgpu = gpuArray(L);
on the GPU and tried to calculate
eigs(Lgpu, 1, 0)
again.
Unfortunately, I receive the error message: "First argument must be a double matrix or a function."
I am wondering what the cause of this error might be and appreciate any help from you.
Thank you very much.
best,
Sven
댓글 수: 0
답변 (2개)
Christine Tobler
2020년 7월 30일
편집: Edric Ellis
2020년 7월 30일
The eigs function is not supported on the GPU. There is support for sparse matrices on the GPU, since R2015a: Release notes parallel computing toolbox.
You could pass a function handle to EIGS that would use computation on the GPU, but would need to accept and pass back out vectors on the CPU. I'm not sure how efficient that would be, but it could be worth a try.
댓글 수: 6
Bruno Luong
2020년 7월 30일
Yeah I would also expect any speedup using GPU. Mostly EIGS on sparse is mainly an iterative process in double layers. Nothing really leans for GPU computation.
Walter Roberson
2020년 7월 29일
There is no GPU support for sparse arrays.
참고 항목
카테고리
Help Center 및 File Exchange에서 GPU Computing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!