Je veux vectoriser manuellement du code C, afin de l'accélérer. Pour ce faire (SPE sur le processeur de la cellule ou CBE), je veux utiliser les mathématiques SIMD. Le code utilise à l'origine des calculs vectoriels physiques (vitesse, accélération, etc.), donc dans certaines parties du code il y a beaucoup d'opérations comme;Meilleure façon de vectoriser le code C à la main
ax=a*vx+b*rx;
ay=a*vy+b*ry;
az=d*vz+b*rz;
donc à ce stade je pensais à la conversion des vecteurs de v et r (sur la SPE, un vecteur peut contenir 4 valeurs flottantes simples), donc en pseudocode il devrait être quelque chose comme
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")
alors pensez-vous que cette approche vaut ou pouvez-vous penser à un meilleur?
Merci