No son pocos los que predican las virtudes de la tecnología FPGA, y muchos proyectos adoptaron a sus circuitos como soluciones definitivas, pero es un error pensar que funcionan por arte de magia. Uno de los mejores ejemplos llega a través de Dylan Barrie, ingeniero de software con más de dos décadas de experiencia en renderizado. Su plan original era dedicar algunos meses y crear una especie de demo técnica, sin embargo, cuatro años de trabajo lo transformaron en una tarjeta gráfica completa, con interfaz PCI Express, drivers para Windows, y un API personalizado. El nombre de su bestia es FuryGpu, y ya puede ejecutar Quake a más de 40 FPS…
La idea de una tarjeta gráfica DIY no es nueva que digamos. Probablemente algunos de nuestros lectores recuerden a «La peor tarjeta gráfica del mundo» creada por Ben Eater, y «La más simple del mundo», una optimización de George Foot. Pero cuando pensamos en un GPU, nuestra mente nos lleva hacia un diseño más tradicional, que se pueda instalar y activar con relativa facilidad.
El problema es que pasar de un prototipo en un breadboard a una tarjeta completa requiere un esfuerzo inmenso, aún teniendo décadas de experiencia. Así llegamos al blog de Dylan Barrie, quien después de haberse especializado como ingeniero de software enfocado en rendering, decidió mojarse los pies en las aguas del hardware. Barrie planeaba dedicar algunos meses a este proyecto, «crear un cubo giratorio», y detenerse allí… pero con casi cuatro años sobre los hombros, su resultado es FuryGpu.
FuryGpu: Una tarjeta gráfica DIY que funciona en Windows y corre Quake
FuryGpu es un «GPU-en-FPGA», basado en el Xilinx Zynq UltraScale+, con una frecuencia de 400 MHz en su núcleo, y 480 MHz en su unidad de texturas. Soporta un front-end FP32 full, filtros lineales y bilineales, y utiliza una interfaz PCI Express 2.0 x4. No hay shaders programables, y en vez de depender de APIs convencionales como Direct3D y Vulkan, Barrie creó su propia solución, FuryGL.
Eso significa que todos los juegos necesitan un port para funcionar correctamente en la FuryGpu, algo difícil, aunque no imposible. Barrie debió aprender SystemVerilog y luchar con KiCad, pero admite que la parte más dolorosa del proyecto fue escribir los drivers de vídeo compatibles con Windows. Lamentablemente no compartió detalles al respecto, pero no nos sorprende que el sistema operativo de Microsoft sea un obstáculo (eso sin olvidar que escribir drivers es complicado en cualquier caso).
La intención de Barrie es convertir a FuryGpu en open source, sin embargo, advierte que no hay un límite de tiempo. Lo mejor es seguir de cerca su blog, y su canal en YouTube para obtener más novedades.
Sitio oficial de FuryGpu: Haz clic aquí
Dylan Barrie en YouTube: Haz clic aquí