我是GPGPU的新手,我对SAXPY功能感到困惑:SAXPY函数就像给定两个相同的大小和向量X和Y一样,执行更改Y中每个元素的操作:y[i] = y[i]+a*x[i]
我不确定我们能否更改SAXPY的公式,例如:y[i]=(y[i]+a)*(x[i]+c)
但是在这种情况下,有一个新的常数c,在这种情况下,我不知道如何调用SAXPY。
感谢您的宝贵时间。
我不知道在这种情况下如何打电话给SAXPY。
您不能。
Saxpy是(nvidia docs)的缩写:
单精度A·X加Y
可能的实现是:
void saxpy(int n, float a, float * restrict x, float * restrict y)
{
for (int i = 0; i < n; ++i)
y[i] = a*x[i] + y[i];
}
如果要y[i]=(y[i]+a)*(x[i]+c)
,那就是一个不同的功能。无论您如何转换公式,saxpy都无法为您完成x[i]*y[i]
部分。