Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
12 Views

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

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
Highlighted
Employee
12 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 

0 Kudos
Highlighted
Beginner
12 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.

0 Kudos
Highlighted
Employee
12 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

 

 

0 Kudos