我需要计算形如
我知道在这样的对称乘积中可以节省大量时间:由于
这是我想利用的一个巨大的优势,而我知道我可以在循环中实现矩阵-矩阵乘积。然而,到目前为止我一直在使用 BLAS,因为它比我自己编写的任何循环实现方式都快得多,因为它优化了高速缓存和内存管理。
有没有一种方法可以使用 BLAS 高效地计算
谢谢!
A'A
或更一般的 A'DA
的一些乘积,其中 A
是一个一般的大小为 mxn
的矩阵,而 D
则是一个对角线大小为 mxm
的矩阵。它们都是满秩的;即 rank(A)=min(m,n)
。我知道在这样的对称乘积中可以节省大量时间:由于
A'A
是对称的,你只需要计算乘积矩阵的下方--或上方--对角线部分。这添加了要计算的项数为 n(n+1)/2
,这大致相当于大型矩阵的典型 n^2
的一半。这是我想利用的一个巨大的优势,而我知道我可以在循环中实现矩阵-矩阵乘积。然而,到目前为止我一直在使用 BLAS,因为它比我自己编写的任何循环实现方式都快得多,因为它优化了高速缓存和内存管理。
有没有一种方法可以使用 BLAS 高效地计算
A'A
或甚至 A'DA
?谢谢!
dsyrk
。 - John