Se ha demostrado que un FPGA, que es una matriz de compuertas programables en campo, una especie de microchip reconfigurable, ejecuta un juego 3D con trazado de rayos escrito en C 50 veces más eficientemente que una CPU x86 mientras usa una fracción de la energía y quizás apuntando el camino hacia futuras mejoras en la eficiencia de la programación. Las afirmaciones se hacen en un libro blanco. [PDF (opens in new tab)] por Victor Suarez Rovere, un desarrollador de Argentina, y Julian Kemmerer, un ingeniero de sistemas de Pensilvania, y traído a nuestra atención por CNX Software (se abre en una pestaña nueva).
La FPGA (se abre en una pestaña nueva) en cuestion es el Arty A7 (se abre en una pestaña nueva), una placa de desarrollo FPGA Xilinx Artix-7 100T que se vende por alrededor de $ 280 y presenta 101,440 celdas lógicas (las celdas lógicas de un FPGA contienen una tabla de búsqueda que puede implementar cualquier función lógica, lo que le da al chip su capacidad de programación) en un proceso de 28 nanómetros, y que consume menos de un vatio de potencia. La CPU contra la que se enfrentó (sin, hay que decirlo, preocupar a la iGPU del chip) era un Ryzen 7 4800H, un procesador portátil de ocho núcleos y 16 hilos que se construyó sobre un proceso de 7 nm y tiene un TDP predeterminado de 45W. Ese es un chip para computadora portátil que no está disponible por sí solo, pero el R7 4700G está disponible actualmente por alrededor de $240.
El juego que se compiló para ejecutarse en las dos plataformas muy diferentes es «Sphery Vs Shapes», y no parece contener mucho en cuanto a la trama, los personajes o el juego real, pero tiene mucho trazado de rayos, como un bola metálica brillante rebota a través de un entorno similar a un tablero de ajedrez, que se refleja en su superficie esférica brillante.
Ambas plataformas renderizaron el juego a 1080p y 50 cuadros por segundo sin problema, pero la FPGA lo hizo usando 660 mW, mientras que la R7 necesitaba 35W, una diferencia de 53x. Se especula que, si la FPGA usara el mismo proceso de 7nm que la CPU, esta cifra podría ser seis veces mayor.
Las claves de todo son Pipeline C (se abre en una pestaña nueva)una invención de Kemmerer, y CflexHDL (se abre en una pestaña nueva) de Suárez. Puedes encontrarlos a ambos en GitHub. «La lógica de animación y representación de píxeles del juego se basa en operaciones matemáticas vectoriales y de punto flotante. Todo el código del juego se expresa mediante una sintaxis limpia que se traduce directamente en un circuito digital. El objetivo actual de este diseño es una placa FPGA con Full HD salida de video digital, y el flujo de trabajo también permite ejecutar el juego en tiempo real en una PC normal utilizando la fuente sin modificar», escriben en su artículo. «Esto permite iteraciones de prueba de desarrollo mucho más rápidas que con las herramientas de diseño de hardware tradicionales. Para la misma carga de trabajo, la eficiencia informática resultó ser más de 50 veces mejor que usar una CPU moderna, en un chip un orden de magnitud más pequeño».
«Sphery Vs Shapes» se destaca bastante bien como una demostración de gráficos, pero lo que significa para el futuro de la programación es más interesante, especialmente porque los FPGA comenzarán a aparecer. (se abre en una pestaña nueva) en chips AMD. Hay planes para portar todo a RISC-V y diseñar un ASIC (circuito integrado de aplicación específica) de código abierto que admita la tubería, y también hay posibilidades para el mundo de los microcontroladores». El código se puede traducir a un circuito lógico, ejecutar en un[n] CPU estándar o en un microcontrolador para desarrollar periféricos de hardware/software sin cambios en el código”, escriben Suárez y Kemmerer en su conclusión. «Los resultados que obtuvimos son fácilmente reproducibles, ya que los materiales son fáciles de obtener y no son costosos».