Я хочу вручную векторизовать некоторый C-код, чтобы ускорить его.Для этой цели (SPE на процессоре Cell или CBE) я хочу использовать SIMD math.Первоначально код использует некоторые физические векторные вычисления (скорость, ускорение и т. Д.), Поэтому в некоторых частях кода существует множество операций, таких как
ax=a*vx+b*rx;
ay=a*vy+b*ry;
az=d*vz+b*rz;
, поэтому в этот момент я подумал о преобразовании v иот r к векторам (в SPE один вектор может содержать 4 одинарных значения с плавающей точкой), поэтому в псевдокоде это должно быть что-то вроде
vector V,R,A;
V.x=vx;
R.x=r.x; (and same for the others "y,z")
A=spu_sum(spu_prod(a,V),spu_prod(b,R));
ax=A.x; (and same for the others "y,z")
, так что вы думаете, стоит ли этот подход или вы думаете о лучшем?
Спасибо