为什么 BLAS SAXPY 更新输入/输出向量 Y?

问题描述

BLAS 规范(http://www.netlib.org/blas/#_level_1)的 SAXPY 例程执行更新(1)的基本原理是什么:Y = A * X + Y,而不是新赋值(2):Z = A * X + Y ?

要使用(1)执行 Z = A * X + Y,我们需要做(伪代码):

Z = Y
SAXPY(A,X,Z)

对于大小为 N 的数组,与 (2) 相比,这是 1 个额外的 O(N) 数组分配:这似乎效率较低。最重要的是 (2) 允许 (1) 如果将向量 Y 传递给输出 Z 向量,则它看起来更通用且更高效。

我很想知道在我遇到的大多数实现中支持 (1) 的设计选择而不是 (2) 的设计选择的原则,例如背包。非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)