Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Wang__Hanrui
Beginner
187 Views

Any routines for sparse symmetric matrix-matrix production?

Jump to solution

Hi,

I notice that MKL has special support for symmetric dense matrix production. Also MKL inspector-executor sparse BLAS routine supports sparse matrix-matrix production. My task is to conduct matrix production of two sparse symmetric matrix. I am wondering if there is any special routines supporting for this kind of special case?

 

Thank you very much!

0 Kudos
1 Solution
Kirill_V_Intel
Employee
187 Views

Hello, we don't have (or, more precisely, don't need) special routines for this case. Optimizations are done internally inside our functionality for sparse matrix-matrix product, like mkl_sparse_spmm (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-spmm) and mkl_sparse_sp2m (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-sp2m). Also, if you actually want to compute A * A^T or a triple product, you can use mkl_sparse_syrk(https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-syrk) or mkl_sparse_sypr (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-sypr).

You can also find the list of all routines present in IE Sparse BLAS in the documentation.

Hope this helps!

Best,
Kirill

View solution in original post

4 Replies
Kirill_V_Intel
Employee
188 Views

Hello, we don't have (or, more precisely, don't need) special routines for this case. Optimizations are done internally inside our functionality for sparse matrix-matrix product, like mkl_sparse_spmm (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-spmm) and mkl_sparse_sp2m (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-sp2m). Also, if you actually want to compute A * A^T or a triple product, you can use mkl_sparse_syrk(https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-syrk) or mkl_sparse_sypr (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-sypr).

You can also find the list of all routines present in IE Sparse BLAS in the documentation.

Hope this helps!

Best,
Kirill

View solution in original post

miao0109
Beginner
69 Views

hello , I learned that mkl provides the mkl_sparse_syrk interface, but it does not seem to support C:=(A^T)*B*A When the matrix is a complex . I have this requirement. When can I support it?

Kirill_V_Intel
Employee
51 Views

Hi!

 

Could you please be a bit more precise with describing your case? 

First of all, the routine for triple product is mkl_sparse_sypr https://software.intel.com/content/www/us/en/develop/documentation/onemkl-developer-reference-c/top/....

Second, it supports complex data types. However, there is a set of possible input options coming from descrB argument. E.g. the routine supports only symmetric/hermitian matrices B. Maybe, your matrix is not hermitian? Or anything else which does not meet the requirements listed in the documentation?

Thanks,
Kirill

Wang__Hanrui
Beginner
187 Views

Voronin, Kirill (Intel) wrote:

Hello, we don't have (or, more precisely, don't need) special routines for this case. Optimizations are done internally inside our functionality for sparse matrix-matrix product, like mkl_sparse_spmm (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-spmm) and mkl_sparse_sp2m (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-sp2m). Also, if you actually want to compute A * A^T or a triple product, you can use mkl_sparse_syrk(https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-syrk) or mkl_sparse_sypr (https://software.intel.com/en-us/mkl-developer-reference-c-mkl-sparse-sypr).

You can also find the list of all routines present in IE Sparse BLAS in the documentation.

Hope this helps!

Best,
Kirill

 

Hi Kirill,

 

OK, I understand. Thank you very much!

 

Best,

Hanrui

Reply