Sparse arrays on GPU?

7 views (last 30 days)
Ajay Shenoy
Ajay Shenoy on 18 Jul 2015
Edited: Amin zaami on 7 Jun 2022
Hello,
According to the Matlab documentation ( http://www.mathworks.com/help/distcomp/run-built-in-functions-on-a-gpu.html ), I can create a sparse gpuArray by "either by calling sparse with a gpuArray input, or by calling gpuArray with a sparse input." Neither of these seems to work:
x = sparse([0 2 0; 0 5 0; 0 1 0])
x =
(1,2) 2
(2,2) 5
(3,2) 1
m = gpuArray(x)
Error using gpuArray
Only full arrays of fundamental numeric types or logical types are supported for
GPU arrays.
Or alternatively:
x = gpuArray([0 2 0; 0 5 0; 0 1 0])
x =
0 2 0
0 5 0
0 1 0
X = sparse(x)
Undefined function 'sparse' for input arguments of type 'gpuArray'.
Am I doing something wrong?
Thanks!

Accepted Answer

Matt J
Matt J on 18 Jul 2015
Edited: Matt J on 18 Jul 2015
Make sure you are using a recent enough version of MATLAB. Sparse gpuArrays weren't always supported.
  2 Comments
Ajay Shenoy
Ajay Shenoy on 18 Jul 2015
Edited: Ajay Shenoy on 18 Jul 2015
Which was the first version to support sparse gpuArrays? I have Matlab R2014b and version 6.5 of the parallel computing toolbox. Thanks - A.

Sign in to comment.

More Answers (1)

Amin zaami
Amin zaami on 7 Jun 2022
Edited: Amin zaami on 7 Jun 2022
See example below for sparse on GPU:
sparse(41200,41200,gpuArray(1),41200,41200);
  • first 2 arguments for size, last two for memory,

Community Treasure Hunt

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

Start Hunting!