Sparse Matrix (gpuArray) LU Decomposition
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Ted
el 5 de Oct. de 2018
Respondida: Joss Knight
el 6 de Oct. de 2018
How can I do LU decomposition on GPU device to a sparse-matrix (H)? Suppose H is a sparse matrix, I did
>> H=gpuArray(H);
>> [L,U,P]=lu(H);
Error using gpuArray/lu
Sparse gpuArrays are not supported for this function.
Q1: Could you please let me know which function allows me to apply LU decomposition to a sparse matrix on GPU?
Later, I will use the L, U and P to process a series of data (d1,d2, ... dn) individually as below. Each data is a matrix where each column is d.
>>for id=1:nd
>>result(:,id)=L\U\P*data(:,id);
>>end
In this case, I can recycle the L, U and P in each inversion for a given data(:,id).
Thank you.
3 comentarios
Bruno Luong
el 6 de Oct. de 2018
Editada: Bruno Luong
el 6 de Oct. de 2018
On sparse matrix LU use some graph technique to limits the band of the matrix so that avoid to fill L/U with too many non-zero elements. I suspect the graph method used by LU on sparse is not parallelizable and not suitable for GPU calculation.
Just stick with CPU solution for now.
Respuesta aceptada
Joss Knight
el 6 de Oct. de 2018
It looks like you're just after the backslash operator, so why not use that, and forget about looping over the RHS.
result = gpuArray(H) \ data;
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre GPU Computing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!