У меня есть набор операций, выполняющихся в цикле.Как накапливать векторы в OpenCL?
for(int i = 0; i < row; i++)
{
sum += arr1[0] - arr2[0]
sum += arr1[0] - arr2[0]
sum += arr1[0] - arr2[0]
sum += arr1[0] - arr2[0]
arr1 += offset1;
arr2 += offset2;
}
Теперь я пытаюсь векторизовать операции, как этот
for(int i = 0; i < row; i++)
{
convert_int4(vload4(0, arr1) - vload4(0, arr2));
arr1 += offset1;
arr2 += offset2;
}
Но как я аккумулировать результирующий вектор в скаляр sum
без использования цикла?
Я использую OpenCL 2.0.
Тогда cpu должен быть быстрым с этим, и поскольку нет дополнительного умножения, как в dot product gpu тоже быстро –