Explorando CPU, DOD e SIMD no Android
Recentemente descobri sobre Data-Oriented Design (DOD) e, enquanto estudava, esbarrei em outro assunto que se encaixava muito bem: SIMD. Para praticar o que estava aprendendo, decidi construir um pequeno simulador de partículas com gravidade chamado ParticleSIM(D).
O objetivo do projeto não é física realista nem gráficos avançados. Ele funciona como um laboratório para experimentar e aprender, entendendo como decisões de layout de dados, escolha de instruções e paralelismo podem impactar o desempenho real em CPUs ARM64 de celulares Android.
Algumas tentativas de otimização, que pareciam eficientes na teoria, se mostraram ineficazes ou até prejudiciais à performance.
Esse projeto tem sido uma ótima oportunidade de estudo, onde cada desafio me força a aprender mais sobre arquitetura e técnicas de otimização. Estou planejando implementar multi-threading para melhorar ainda mais a performance, mas no momento estou explorando profundamente o assunto para chegar a uma implementação eficiente.
Se tiverem interesse em analisar o código, ele está disponível no GitHub: ParticleSIMD Como programo apenas pelo celular, usei Xmake como sistema de build para facilitar. O projeto inclui um backend que roda sobre Termux:GUI e a opção de compilar diretamente para APK usando NDK, que é mais rápido do que usar Gradle.
Aceito sugestões de quem já trabalhou com DOD, SIMD ou otimização de CPU em Android — todo feedback é bem-vindo!
