1 pontos por GN⁺ 2024-03-28 | 1 comentários | Compartilhar no WhatsApp

FuryGpu: uma GPU totalmente personalizada, criada do zero para computadores modernos

  • A FuryGpu é uma GPU de hardware real implementada em um FPGA Xilinx Zynq UltraScale+.
  • Foi construída em uma PCB personalizada e se conecta ao computador hospedeiro via PCIe.
  • Suporta recursos de hardware equivalentes aos de placas gráficas avançadas de meados dos anos 1990 e conta com uma pilha completa de drivers de software moderna para Windows.
  • É capaz de renderizar jogos reais da época em taxas de quadros acima do tempo real.
  • O blog e mais detalhes serão divulgados em breve.

Opinião do GN⁺

  • A FuryGpu é uma GPU baseada em FPGA com potencial para executar jogos clássicos com alto desempenho em computadores modernos. Isso pode atrair grande interesse da comunidade de retrogaming.
  • GPUs baseadas em FPGA podem ser úteis em áreas de pesquisa e desenvolvimento que exigem soluções de hardware personalizadas, além de oferecer processamento otimizado para aplicações específicas.
  • Embora já existam diversas GPUs no mercado para atender diferentes necessidades de processamento gráfico, uma GPU com FPGA pode ter uso promissor em ambientes de propósito especial ou educacionais.
  • Ao adotar essa tecnologia, é preciso considerar a complexidade de programação e o custo dos FPGAs, e o desenvolvimento de hardware personalizado pode exigir muito tempo e recursos.
  • Ainda não está claro qual desempenho real a FuryGpu apresentará, nem como poderá ser aplicada ao suporte a jogos modernos ou a outras tarefas gráficas avançadas.

1 comentários

 
GN⁺ 2024-03-28
Comentários do Hacker News
  • Apresentação do projeto e planos de código aberto

    • O projeto já foi tornado público, mas a intenção era esperar até que houvesse mais conteúdo no site.
    • Há planos de disponibilizar como código aberto o esquema/layout da PCB, HDL, o driver Windows WDDM, o driver de runtime da API e um port de Quake que usa essa API, mas ainda é preciso resolver questões legais e definir o licenciamento.
    • O primeiro commit foi feito em 22 de agosto de 2021, e o trabalho já dura mais de dois anos e meio.
    • Há vídeos mostrando o progresso na playlist do FuryGpu no YouTube.
    • Está sendo preparado um post no blog sobre a interface PCIe, começando pelo esquema da PCB e passando por design em FPGA até o driver para Windows, dividido em várias partes.
  • Influência da série de computador em breadboard do Ben Eater

    • A influência da série de computador em breadboard do Ben Eater no hobby de eletrônica é enorme.
    • Ela serviu de inspiração para projetar uma CPU "retrô" própria.
    • A ideia era ter algo tão fácil de conectar quanto um 6502, mas com um pouco mais de recursos, como registradores extras e divisão por hardware.
    • A tendência acaba sendo voltar ao uso de MCU, mas então surge o problema de gerar gráficos.
  • Natureza hobby do projeto e funcionamento da stack completa

    • O projeto começou como hobby, e há planos de escrever mais sobre como ele foi construído.
    • A stack completa funciona, incluindo um driver para Windows que implementa uma API gráfica personalizada e o Quake rodando sobre ela.
    • Não há suporte a DX/GL, mas é possível entender por que foi escolhido o caminho de uma API própria.
    • Há curiosidade sobre a possibilidade de o design ser aberto como código-fonte.
  • Necessidade de uma GPU no formato M.2

    • Existe necessidade de uma opção de GPU compacta e independente.
    • A ideia é ter uma GPU M.2 discreta com desempenho no nível de Intel UHD Graphics, AMD Radeon ou Adreno da Qualcomm.
    • Há ideias de produtos embarcados pequenos que precisam de muito processamento e rede, mas pouca capacidade gráfica.
    • O NXP Layerscape LX2160A seria perfeito, mas não pode ser usado por não ter GPU integrada.
  • Ausência de GPUs open hardware e licenciamento

    • Quase não existem GPUs open hardware.
    • Não há informações sobre a licença deste projeto, mas ele pode se tornar a primeira GPU open hardware e servir como ponto de partida para mais projetos.
  • Desenvolvimento de GPU focada em 2D e consideração sobre uso de FPGA

    • Está sendo desenvolvida uma GPU focada em 2D para microcontroladores.
    • Ela é usada para renderizar em telas grandes a partir de máquinas com SPI.
    • Ao observar os limites do pipeline do processador, surge a impressão de que FPGA pode ser mais rápido.
    • Foi comprado um FPGA de baixo desempenho para estudo, com a intenção de migrar uma microgpu baseada em ESP32 para uma versão em FPGA.
    • Não há certeza de que será possível chegar a esse nível por limitações de tempo e filhos, mas existe vontade de alcançar pelo menos parte disso.
  • Projeto Vortex e o futuro do design de GPUs

    • Há atenção voltada ao projeto Vortex, do Georgia Tech.
    • Em vez de repetir o passado de funções fixas, trata-se de um computador massivamente paralelo baseado em RISC-V, com extensões para lidar melhor com tarefas de GPU.
    • As placas que executam isso custam alguns milhares de dólares e não são muito amigáveis para hobby, mas ainda são mais acessíveis do que um desenvolvimento fechado e proprietário.
    • A versão 2.0 foi lançada alguns meses atrás.
  • Fotos do dispositivo físico e confusão com o módulo FPGA

    • Há interesse em ver fotos do dispositivo físico.
    • Existe confusão sobre o módulo FPGA utilizado.
    • No blog são mencionados SoMs Xylinx Kria, mas ao seguir as especificações desses módulos vê-se que eles incluem ARM SoCs.
    • Como não há familiaridade com o mundo de FPGA, pode ser que algo esteja passando despercebido.
  • Expectativa sobre a implementação da interface PCIe

    • Há expectativa por detalhes sobre como o autor implementa a interface PCIe.
    • Mesmo sem grande chance de fazer um trabalho de hardware tão sofisticado, vale a pena entender o interior do PCIe como conhecimento cultural geral.
  • Possibilidade de evoluir para um projeto open source de hardware

    • O projeto é muito legal, e há desejo de que ele se torne um projeto de hardware open source.