Follow-up marked in #3290 by @AlexanderSinn:
The ParticleTileData struct that is used to access SoA data can be very large, over 300 bytes in some cases. I recommend changing the array-of-pointers to a full 2D array. This way ParticleTileData could be as small as 24 bytes (real pointer, int pointer, stride).
@atmyers what do you think?