【发布时间】:2018-04-11 08:01:11
【问题描述】:
我必须以A'A 或更一般的A'DA 形式计算一些产品,其中A 是一般mxn 矩阵,D 是对角线mxm 矩阵。他们都是满级;即rank(A)=min(m,n).
我知道这样的对称乘积可以节省大量时间:鉴于A'A 是对称的,您只需计算乘积矩阵的下对角线部分或上对角线部分。这增加了要计算的 n(n+1)/2 条目,这大约是大型矩阵的典型 n^2 的一半。
这是我想利用的一个很好的节省,而且我知道我可以在 for 循环中实现矩阵-矩阵乘法。不过,到目前为止,我一直在使用 BLAS,它比我自己编写的任何 for 循环实现都要快得多,因为它优化了缓存和内存管理。
有没有办法使用 BLAS 有效地计算 A'A 甚至 A'DA?
谢谢!
【问题讨论】:
标签: matrix linear-algebra blas