- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,

I want to use MKL Sparse to compute a dense matrix multiply transposed sparse matrix. Particularly, if I have input A(dense, m-by-k), B(sparse, n-by-k), I want to compute:

C = A * B'

where C is a m-by-n dense matrix. Notice that the position of matrix is different from what mkl_?csrmm(https://software.intel.com/zh-cn/node/520832) defines. I am thinking about transpose the A and C and transpose them back after computation. But there is too much memory consumption when A and C are both big. Any thoughts on that?

Thanks!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Yiming,

Thanks for letting us know. I may escalate the interface request to engineer team to consider in future version. You may use the transpose + mkl_?csrmm + transpose for temp workaround.

Best Regards,

Ying

transpose, void mkl_simatcopy (const char ordering, const char trans, size_t rows, size_t cols,

const float alpha, float * AB, size_t lda, size_t ldb);

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Yiming,

Right, it seems there is no suitable function to do such operation besides that either B transpose, or A transpose. .

C= A(dense)*B'(sparse) or C'=B(sparse)*A'(dense) is for mkl_?csrmm.

What is the range of the m, k, n?

Best Regards,

Ying

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Ying,

Thanks for replying. I think the M and N might be in the range of 1,000 to 50,000. Do you have any plan for providing any interface with sparse matrix on the right?

Thanks!

Yiming

Ying H. (Intel) wrote:

Hi Yiming,

Right, it seems there is no suitable function to do such operation besides that either B transpose, or A transpose. .

C= A(dense)*B'(sparse) or C'=B(sparse)*A'(dense) is for mkl_?csrmm.

What is the range of the m, k, n?

Best Regards,

Ying

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi Yiming,

Thanks for letting us know. I may escalate the interface request to engineer team to consider in future version. You may use the transpose + mkl_?csrmm + transpose for temp workaround.

Best Regards,

Ying

transpose, void mkl_simatcopy (const char ordering, const char trans, size_t rows, size_t cols,

const float alpha, float * AB, size_t lda, size_t ldb);

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page