sparse vector and symmetric-sparse matrix-vector multiplication BLAS

  1. I’m trying to create a sparse vector in CUDA, but I’m having trouble finding the related documentations for doing so. It would be great if it can be pointed out where this is located (I’m actually quite certain hearing from my co-workers that this support exists for BLAS on CUDA), particularly perhaps with sparse vector storage schemes.

  2. I’m trying to perform a matrix-vector multiplication with a full symmetric matrix and a sparse vector. I have looked at the support from a CPU-optimized BLAS/Lapack library (namely Intel Math Kernel Library in my case), and there are such operations available (as discussed here). However, I’m having trouble finding it in CUDA documentation. What I’m trying to do is the following:

I want to be able to carry out matrix-vector multiplication such that only the blue columns of the matrix multiplies with the blue rows of the vector, and red columns of the matrix multiplies with the red rows of the vector. It would be great to hear some suggestions on where I should focus reading and trying out to accomplish my goals. Thanks in advance.

There are no sparse operations in CUBLAS. CUBLAS, like every other library modelled on the original NETLIB BLAS, is designed for dense vector-vector, matrix-vector and matrix-matrix operations.

You can find a very good suite of sparse matrix-vector multiply routines for CUDA in the CUSP library.