How can I define an array of sparse matrix? (both for GPU and CPU)

12 views (last 30 days)
Sandra Martinez
Sandra Martinez on 16 May 2022
Answered: Amin zaami on 7 Jun 2022
A=sparse(3,3)
MT=gpuArray(A);
M2(1,1)=1
%Error using gpuArray/subsasgn
%Sparse gpuArrays are not supported for this function.
L=sparse(3,3,1);
L(:,:,1)=A;
%N-dimensional indexing allowed for full matrices only.
L2=gpuArray(L);
L2(:,:,1)=MT;
%Error using gpuArray/subsasgn
%Sparse gpuArrays are not supported for this function.

Answers (2)

James Tursa
James Tursa on 16 May 2022
For CPU, you can use the ndSparse submission by Matt J on the FEX:
I am unaware of anything similar for GPU.

Amin zaami
Amin zaami on 7 Jun 2022
See example below for sparse on GPU:
sparse(A1,A2,gpuArray(1),m1,m2);
sparse(41200,41200,gpuArray(1),41200,41200);
  • first 2 arguments for size, last two for memory,
  • there should be always A1<m1 & A2 <m2

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!