1 puntos por GN⁺ 2024-03-28 | 1 comentarios | Compartir por WhatsApp

FuryGpu: una GPU totalmente personalizada construida desde cero para computadoras modernas

  • FuryGpu es una GPU de hardware real implementada en un FPGA Xilinx Zynq UltraScale+.
  • Está construida sobre una PCB personalizada y se conecta a la computadora host mediante PCIe.
  • Soporta funciones de hardware equivalentes a las de tarjetas gráficas avanzadas de mediados de los años 90, y cuenta con una pila completa de controladores de software moderna para Windows.
  • Puede renderizar juegos reales de esa época a velocidades de cuadro superiores al tiempo real.
  • El blog y más detalles se publicarán pronto.

Opinión de GN⁺

  • FuryGpu es una GPU basada en FPGA con el potencial de ejecutar juegos clásicos con alto rendimiento en computadoras modernas. Esto podría atraer mucho interés en la comunidad de retro gaming.
  • Una GPU basada en FPGA puede ser útil en campos de investigación y desarrollo que requieren soluciones de hardware personalizadas, y puede ofrecer procesamiento optimizado para aplicaciones específicas.
  • Aunque actualmente existen diversas GPU en el mercado para satisfacer distintas necesidades de procesamiento gráfico, se espera que una GPU con FPGA tenga usos en entornos de propósito especial o educativos.
  • Al adoptar esta tecnología, hay que considerar la complejidad de programación y el costo del FPGA, y el desarrollo de hardware personalizado puede requerir mucho tiempo y recursos.
  • Aún está por verse qué rendimiento mostrará realmente FuryGpu y cómo podría aplicarse al soporte de juegos modernos u otras tareas gráficas avanzadas.

1 comentarios

 
GN⁺ 2024-03-28
Opiniones de Hacker News
  • Introducción del proyecto y planes de código abierto

    • Ya hice público el proyecto, pero quería esperar a que hubiera más contenido en el sitio.
    • Planeo publicar como código abierto los esquemas/layout del PCB, el HDL, el driver WDDM de Windows, el driver runtime de la API y un port de Quake que usa la API, pero primero hay que resolver temas legales y decidir la licencia.
    • Empecé con el primer commit el 22 de agosto de 2021 y llevo más de dos años y medio trabajando en esto.
    • Hay videos en la playlist de FuryGpu en YouTube que muestran el progreso.
    • Estoy preparando una serie de posts sobre la interfaz PCIe, empezando por el esquema del PCB y cubriendo en varias partes el diseño en FPGA y el driver de Windows.
  • Influencia de la serie de computadoras en protoboard de Ben Eater

    • La influencia de la serie de computadoras en protoboard de Ben Eater en la electrónica hobby ha sido enorme.
    • Me inspiró a diseñar mi propia CPU "retro".
    • Quería algo tan fácil de conectar como un 6502, pero con un poco más de funcionalidad, como registros adicionales y división por hardware.
    • Pero suele pasar que uno termina volviendo a usar un MCU, hasta que se topa con el problema de generar gráficos.
  • Naturaleza hobby del proyecto y funcionamiento de toda la pila

    • El proyecto empezó como un hobby y pienso escribir más sobre cómo lo construí.
    • Toda la pila funciona, incluyendo un driver de Windows que implementa una API gráfica personalizada y Quake corriendo encima de ella.
    • No tiene soporte para DX/GL, pero se entiende por qué eligió una ruta con API personalizada.
    • Me pregunto si publicará el diseño como código abierto.
  • Necesidad de una GPU en formato M.2

    • Hace falta una opción de GPU compacta e independiente.
    • Quiero una GPU M.2 independiente con un rendimiento al nivel de Intel UHD Graphics, AMD Radeon o Adreno de Qualcomm.
    • Tengo ideas para productos embebidos pequeños que necesitan mucho cómputo y networking, pero pocas capacidades gráficas.
    • El NXP Layerscape LX2160A sería perfecto, pero no me sirve porque no tiene GPU integrada.
  • Ausencia de GPUs de hardware abierto y licencias

    • Casi no existen GPUs de hardware abierto.
    • No hay información sobre la licencia de este proyecto, pero podría convertirse en la primera GPU de hardware abierto y servir como punto de partida para más proyectos.
  • Desarrollo de una GPU enfocada en 2D y consideración del uso de FPGA

    • Estoy desarrollando una GPU enfocada en 2D para microcontroladores.
    • La uso para renderizar en pantallas grandes desde máquinas con SPI.
    • Al ver los límites del pipeline del procesador, pensé que una FPGA podría ser más rápida.
    • Compré una FPGA de baja potencia para aprender y quiero migrar la microgpu basada en ESP32 a una versión sobre FPGA.
    • No estoy seguro de poder llegar a este nivel por las limitaciones de tiempo y por tener hijos, pero me gustaría alcanzar al menos una parte de esto.
  • El proyecto Vortex y el futuro del diseño de GPUs

    • Me fijé en el proyecto Vortex del Georgia Tech.
    • En lugar de repetir el pasado de funciones fijas, es una computadora altamente paralela basada en RISC-V con extensiones para manejar mejor las tareas de GPU.
    • Las placas funcionales cuestan varios miles de dólares, así que no es muy amigable para hobby, pero sigue siendo más accesible que un desarrollo cerrado y propietario.
    • Hace unos meses salió la versión 2.0.
  • Fotos del dispositivo físico y confusión sobre el módulo FPGA

    • Me gustaría ver fotos del dispositivo físico.
    • Estoy confundido sobre el módulo FPGA usado.
    • En el blog se mencionan los Xylinx Kria SoMs, pero al revisar las especificaciones de esos módulos veo que incluyen SoCs ARM.
    • No conozco mucho el mundo FPGA, así que tal vez se me está escapando algo.
  • Expectativas sobre la implementación de la interfaz PCIe

    • Tengo curiosidad por los detalles de cómo el autor implementó la interfaz PCIe.
    • Probablemente nunca haga un trabajo de hardware tan sofisticado, pero vale la pena mirar por dentro cómo funciona PCIe aunque sea por cultura general.
  • Posibilidad de evolucionar hacia un proyecto de hardware de código abierto

    • El proyecto está buenísimo y ojalá termine convirtiéndose en un proyecto de hardware de código abierto.