Sparse for gpuArray problem
1 view (last 30 days)
Show older comments
shahrizan jamaludin
on 8 Mar 2016
Commented: Joss Knight
on 21 Mar 2016
Hello, i got problem with the code below:
pix=pix1; %pix1 is gpuArray with size 5194x2
P1=pix(:,2); %gpuArray with size 5194x1
P2=pix(:,1); %gpuArray with size 5194x1
spr=sparse(P1,P2,1,size(A,1),size(A,2));
%Error using gpuArray/sparse. Too many input arguments
but if i put "gather", it shows no error.
pix=pix1; %pix1 is gpuArray with size 5194x2
pix=gather(pix); % double with 5194x2
P1=pix(:,2); %double with size 5194x1
P2=pix(:,1); %double with size 5194x1
spr=sparse(P1,P2,1,size(A,1),size(A,2));
What went wrong? Any limitation for sparse in gpuArray? My GPU is 4GB
0 Comments
Accepted Answer
Joss Knight
on 8 Mar 2016
Yes, in R2015b the five-argument form of sparse is not supported for gpuArray. See help gpuArray/sparse.
Now that it's out you can upgrade to R2016a, which does support the five-argument form of gpuArray/sparse.
2 Comments
Joss Knight
on 21 Mar 2016
By the way, in R2015b you can use accumarray, which has very much the same syntax as the 5-argument form of sparse. All you do is combine i and j into one matrix, also combine m and n into one size input, and specify the 6th argument as true (output sparse matrix), namely:
S = accumarray([i j], s, [m n], [], [], true);
is equivalent to
S = sparse(i, j, s, m, n);
More Answers (0)
See Also
Categories
Find more on Sparse Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!