He leído mucho sobre los beneficios de organizar los datos en 'Structs of Arrays' (SoA) en lugar del típico 'Array of Structs' (AoS) para obtener un mejor rendimiento al usar instrucciones SIMD . Si bien el 'por qué' tiene mucho sentido para mí, no estoy seguro de cuánto hacer esto cuando trabajo con cosas como vectores.
Los propios vectores pueden considerarse como una estructura de una matriz de datos (de tamaño fijo), por lo que podría convertir una matriz de estos en una estructura de matrices X, Y y Z. A través de esto, puede trabajar en 4 vectores a la vez en lugar de uno a la vez.
Ahora, por la razón específica, estoy publicando esto en GameDev:
¿Tiene sentido trabajar con vectores en la SPU? Más específicamente, ¿tiene sentido para DMA múltiples matrices solo para un solo vector? ¿O sería mejor quedarse con DMA colocando la matriz de vectores y desenrollarlos en los diferentes componentes para trabajar?
Pude ver el beneficio de cortar el desenrollado (si lo hizo 'AoS'), pero parece que podría quedarse rápidamente sin canales DMA si tomara esta ruta y trabajara con múltiples conjuntos de vectores a la vez.
(Nota: todavía no hay experiencia profesional con Cell, pero he estado jugando en OtherOS por un tiempo)