J'ai beaucoup lu sur les avantages de l'organisation des données en `` structures de tableaux '' (SoA) au lieu du `` tableau de structures '' (AoS) typique pour obtenir un meilleur débit lors de l'utilisation d' instructions SIMD . Bien que le `` pourquoi '' ait un sens total pour moi, je ne sais pas combien faire pour travailler avec des choses comme des vecteurs.
Les vecteurs eux-mêmes peuvent être considérés comme une structure d'un tableau de données (de taille fixe), vous pouvez donc convertir un tableau de ces derniers en une structure de tableaux X, Y et Z. Grâce à cela, vous pouvez travailler sur 4 vecteurs à la fois, par opposition à un à la fois.
Maintenant, pour la raison spécifique que je poste sur GameDev:
Est-ce que cela a du sens pour travailler avec des vecteurs sur le SPU? Plus précisément, cela a-t-il un sens pour les tableaux DMA multiples juste pour un seul vecteur? Ou serait-il préférable de s'en tenir à DMAing le tableau de vecteurs et de les dérouler dans les différents composants avec lesquels travailler?
Je pouvais voir l'avantage de couper le déroulement (si vous l'avez fait `` AoS ''), mais il semble que vous pourriez rapidement manquer de canaux DMA si vous preniez cette route et travailliez avec plusieurs ensembles de vecteurs à la fois.
(Remarque: aucune expérience professionnelle avec Cell pour le moment, mais nous avons joué dans OtherOS pendant un certain temps)