Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Any routines for sparse symmetric matrix-matrix production?

Wang__Hanrui
Beginner
1,155 Views

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
1,153 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

0 Kudos
4 Replies
Kirill_V_Intel
Employee
1,154 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

0 Kudos
miao0109
Beginner
1,035 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?

0 Kudos
Kirill_V_Intel
Employee
1,017 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/blas-and-sparse-blas-routines/inspector-executor-sparse-blas-routines/inspector-executor-sparse-blas-execution-routines/mkl-sparse-sypr.html.

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

0 Kudos
Wang__Hanrui
Beginner
1,153 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

0 Kudos
Reply