GPU sparse, accumarray, non-uniform grid

performance gains above 1000x over matlab spmv can be observed with cuda compatible GPU.

You are now following this Submission

bare-bone interface with cusp sparse class for gpus,
support for single precision, real/complex.

Usage:
A=gcsparse(B,[format: 0=coo, 1=csr]);
or
A=gcsparse(col,row,val,[nrows,[ncols,[format]]]);
input B is a matlab array, sparse array or gcarray.

overloaded operators:
ctranspose: B=A.';
transpose: B=A';
multiply: x=A*y; (spmv)
format conversion:
B=real(A);A=complex(B);B=gcsparse(A,format);
rowptr= ptr2row(A);
row =grow2ptr(A);

examples:
real/complex speed test: testgsparse.m
accumarray: testRadavg.m
stencils: testgnufft.m (radon trasform example)

Notes:
format conversion row2ptr and ptr2row is unstable inside a function call. (the reason why is a mystery to me).

Cite As

Stefano (2026). GPU sparse, accumarray, non-uniform grid (https://www.mathworks.com/matlabcentral/fileexchange/44423-gpu-sparse-accumarray-non-uniform-grid), MATLAB Central File Exchange. Retrieved .

General Information

MATLAB Release Compatibility

  • Compatible with any release

Platform Compatibility

  • Windows
  • macOS
  • Linux
Version Published Release Notes Action
1.5.0.0

reduced number of copies during format conversion,
testgnufft example compares with matlab radon/iradon, (>20x speedup using GTX titan).

1.4.0.0

added density compensation function for gnufft/gnuradon/gnuiradon.

1.3.0.0

fixed bug in gnufft

1.2.0.0

added class description