Aceleración 30x de un juego C++ sin sentido en una GPU
El autor intentó portar un programa C++ para jugar al juego de cartas "Beggar My Neighbour" a una GPU para acelerarlo. Inicialmente, el rendimiento de la GPU quedó muy por detrás de la CPU. Utilizando la herramienta Nvidia Nsight Compute, el autor identificó la divergencia de hilos y la velocidad de acceso a la memoria como cuellos de botella. Al transformar el algoritmo en una estructura de máquina de estados y optimizar con tablas de búsqueda y memoria compartida, finalmente se logró una mejora de rendimiento de 30 veces, alcanzando los 100 millones de jugadas de juegos por segundo. El artículo detalla el proceso de optimización y los desafíos encontrados, ofreciendo información valiosa sobre las prácticas de programación de GPU.