Filter löschen
Filter löschen

Sparse for gpuArray problem

1 Ansicht (letzte 30 Tage)
shahrizan jamaludin
shahrizan jamaludin am 8 Mär. 2016
Kommentiert: Joss Knight am 21 Mär. 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

Akzeptierte Antwort

Joss Knight
Joss Knight am 8 Mär. 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 Kommentare
shahrizan jamaludin
shahrizan jamaludin am 8 Mär. 2016
Thanks for your help.
Joss Knight
Joss Knight am 21 Mär. 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);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Startup and Shutdown finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by