I’m a bit confused by the appropriate selection of SOA or AOS in the context of rendering meshes in OpenGL or Vulcan. From the perspective of conventional CPUs, I would think that having all the information co-located in the same cache line would be optimal (maximises cache hits). I.e. you can probably fit all the information you need for one face into the L1 or atleast L2 cache. Does this logic translate to GPUs as well or are the fundamental architecture just so diffirent that the logic does not hold?
At this point I’m thinking that AOS is good for data be rendered and SOA is good for SIMD and CUDA, is this right?