LAPACK 的 dpstrf 和 dpst2 的旋转策略有什么不同,为什么?
计算科学
线性代数
拉帕克
2021-12-05 09:29:31
1个回答
不同之处在于他们使用的是哪个 BLAS 级别。TRF 是 BLAS3,TF2 是 BLAS2。粗略地说,BLAS 3 级例程针对具有高速缓存的计算机进行了优化,以便它们可以执行块调用。BLAS 2 针对可能具有共享内存的矢量计算机进行了优化。
正如您在代码(第 209 行)中看到的那样,如果最佳块大小结果大于矩阵大小(这意味着不可能使用阻塞算法)或小于或等于 1,则 DSTRF 回落到未阻塞的版本 DPSTF2。