GPU sparse, accumarray, non-uniform grid

Version 1.5.0.0 (97.9 KB) by Stefano
performance gains above 1000x over matlab spmv can be observed with cuda compatible GPU.
1.1K Downloads
Updated 4 Dec 2013

View License

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 (2024). GPU sparse, accumarray, non-uniform grid (https://www.mathworks.com/matlabcentral/fileexchange/44423-gpu-sparse-accumarray-non-uniform-grid), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on GPU Computing in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
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