Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
6435 Discussions

best way to compute products of the form A*S*A' where S is symmetric?

rnickb
Beginner
93 Views

What's the best way to efficiently compute a product of the form A*S*A' where S is symmetric with MKL?

Does MKL provide anything similar to the sykrx function that's part of cublas (http://docs.nvidia.com/cuda/cublas/#cublasxt_syrkx)? so that you can use it along with symm to compute the product without having to recompute symmetric entries?

0 Kudos
3 Replies
Ying_H_Intel
Employee
93 Views

Hi rnickb

I checked with internal team.  Unfortunately there is no analogous routine in MKL.   But could you please share some background about the functionality (here or send me private message), so i may create a feature request to our developer if there is a good strong motivation behind that. 

Thanks

Ying 

rnickb
Beginner
93 Views

Thanks for checking.

That computation is used in the update step to the inverse hessian approximation in the BFGS optimization algorithm (http://en.wikipedia.org/wiki/Broyden–Fletcher–Goldfarb–Shanno_algorithm) so it would be useful functionality to support.

Ying_H_Intel
Employee
93 Views

Hi rnickb, 

We introduced a new GEMM-like extension into MKL, available starting in MKL 11.3b1.  It is called GEMMT, and it is similar to GEMM except that it updates only the upper or lower triangular part of the C matrix.  It also requires C to be square (size n x n).

To compute A * S * A', you can do as suggested: use SYMM to compute B=A*S, then use GEMMT to compute B*A'.

As MKl 11.3 beta 1 are included Intel Parallel Studio XE 2016 beta. I send one beta invitation letter to you.   You are welcomed to try it and let us know if any feedback. 

Thanks

Ying

 

 

Reply