Looking for the SpMV GPU kernel implementing CSR-I

Open discussion for MAGMA library (Matrix Algebra on GPU and Multicore Architectures)
Post Reply
edgarfblack
Posts: 4
Joined: Wed Jun 17, 2020 9:38 am

Looking for the SpMV GPU kernel implementing CSR-I

Post by edgarfblack » Fri Jun 19, 2020 11:19 am

Hi,

I wonder if the CSR-I GPU kernel has been implemented in Magma.

I am reading a 2017 paper "Balance CSR Sparse Matrix-Vector product on Graphics Processors" and the authors claim that their CSR-I algorithm will be available in a future version of magma.

If that is correct, how can I access to that algorithm.

Thanks in advance.

Stan Tomov
Posts: 283
Joined: Fri Aug 21, 2009 10:39 pm

Re: Looking for the SpMV GPU kernel implementing CSR-I

Post by Stan Tomov » Fri Jun 19, 2020 1:46 pm

We haven't considered adding it. MAGMA has CSR5 storage and kernel optimized for it.

edgarfblack
Posts: 4
Joined: Wed Jun 17, 2020 9:38 am

Re: Looking for the SpMV GPU kernel implementing CSR-I

Post by edgarfblack » Fri Jun 19, 2020 2:10 pm

Thanks for the answer.

One more question.

Is the current SmPV kernel in magma ( magma_d_spmv( ) ) based on the CSR kernel in the cudaSparse library or is it your own implementation?

Thanks.

Stan Tomov
Posts: 283
Joined: Fri Aug 21, 2009 10:39 pm

Re: Looking for the SpMV GPU kernel implementing CSR-I

Post by Stan Tomov » Fri Jun 19, 2020 3:49 pm

The magma_d_spmv is a wrapper that is pre-tuned to call the "fastest" implementation (based on architecture, sizes, formats, etc.). You can take a look at it in file magma_d_blaswrapper.cpp. So, if the matrix is in CSR format for example, we currently call cuSparse.

edgarfblack
Posts: 4
Joined: Wed Jun 17, 2020 9:38 am

Re: Looking for the SpMV GPU kernel implementing CSR-I

Post by edgarfblack » Fri Jun 19, 2020 3:52 pm

Thanks

Post Reply