Durante anos, presumimos que construir uma GPU era domínio de empresas com fábricas avançadas, equipes de engenharia e orçamentos multimilionários. Não era uma ideia absurda: basta observar a complexidade de qualquer placa gráfica moderna para entender por que parecia estar além do alcance da pessoa comum. Mas o que Matthias Balwierz, conhecido como Bitluni, fez nos força a reconsiderar essa suposição. Ele não replicou uma GeForce, nem pretende competir com a NVIDIA, mas está construindo uma máquina gráfica em casa com milhares de microcontroladores RISC-V.
A primeira fase utiliza 8.192 desses microcontroladores, cada um conectado diretamente a um LED RGB. Essa decisão torna a montagem difícil de categorizar: o projeto combina processamento gráfico e a superfície de exibição em uma única estrutura. Tecnicamente, ele foi projetado para funcionar simultaneamente como uma placa de vídeo e uma tela, sem depender de um monitor separado. No entanto, o projeto ainda é um protótipo parcial, longe da escala e das capacidades previstas para o sistema completo.
GPU construída pixel por pixel
Essa arquitetura não foi definida desde o início. O criador inicialmente considerou construir algum tipo de tela, mas, após estudar o custo e a complexidade do projeto, descartou o uso de componentes RGB endereçáveis, o que teria aumentado significativamente o custo total. A alternativa foi mais direta: soldar um LED a cada microcontrolador e transformar cada chip em uma unidade gráfica visível e independente. Essa decisão representou parte do orçamento, embora tenha multiplicado o trabalho de projeto, montagem e programação necessário para coordenar milhares de elementos.
A escala se torna totalmente aparente quando vemos o projeto completo. Uma resolução de 1920x1080 exigiria mais de dois milhões de microcontroladores, elevando o custo e a complexidade muito além da meta inicial da Bitluni. A empresa então reduziu a ambição para 320x200 pixels, uma resolução associada aos videogames da era DOS, mas que ainda requer 64 mil chips. Os componentes instalados até o momento representam apenas o primeiro estágio de uma máquina que aumentaria quase oito vezes de tamanho se concluída.
Para organizar uma quantidade tão grande de hardware, a Bitluni dividiu o sistema em placas de 16x32 "pixels", concebidas como módulos independentes dentro do todo. Elas são dispostas em uma configuração circular que lembra o Cray-1, o supercomputador histórico da década de 1970, embora a referência seja principalmente visual. A coordenação interna também é hierárquica: cada grupo de 32 microcontroladores é controlado por uma unidade CH32V mais poderosa, responsável por organizar a operação daquela seção e servir como um nível intermediário dentro da máquina.
A escolha do QingKe CH570 explica parte da lógica econômica do projeto. Trata-se de um microcontrolador com CPU RISC-V de 32 bits, conjunto de instruções limitado e frequência de até 100 MHz. Ele também integra um controlador USB, um transceptor de 2,4 GHz e compatibilidade com Bluetooth 5.0 LE. A Bitluni conseguiu adquirir cada unidade por cerca de US$ 0,13, mas a vantagem se dilui ao multiplicar esse valor pelo conjunto total de chips planejado: apenas os chips necessários para atingir 320x200 pixels custariam mais de US$ 8 mil.
O problema se agrava ao planejar a fonte de alimentação para todo o sistema. O projeto menciona uma estimativa de 2.161 W, equivalente a cerca de 655 amperes a 3,3 V, para a configuração final planejada. O artigo observa que cada microcontrolador consome cerca de 10 mA, embora não forneça uma discriminação do consumo de energia dos chips, LEDs e componentes eletrônicos auxiliares. Para suportar tal carga, Bitluni utilizou uma fonte de alimentação Corsair WS3000 e seus próprios conversores, capazes de transformar a saída de 12 V nos 3,3 V necessários.
Uma parte significativa do projeto também envolve a fabricação da infraestrutura que permite o funcionamento de todo o resto. Bitluni projetou as placas de circuito impresso (PCBs), os circuitos de alimentação, as placas de interface e as placas de ensaio (protoboards) e, pela primeira vez, trabalhou com uma placa de seis camadas. A complexidade do projeto acabou por levá-lo aos limites do serviço de fabricação que utilizou. Paralelamente, ele estudou uma solução de resfriamento por imersão e chegou a projetar o recipiente de acrílico que seria necessário, embora tenha abandonado essa opção por razões econômicas e ambientais.
A programação apresentou outro problema de escalabilidade: não bastava fabricar as placas; o código também precisava ser carregado em cada microcontrolador. Para evitar esse processo manual, a Bitluni imprimiu em 3D uma pequena ferramenta com três contatos e a acoplou ao carro de uma impressora 3D. Um script em Python enviava comandos em código G para movê-la até a posição exata de cada chip e repetir o processo várias vezes. Dessa forma, a impressora deixou de fabricar peças e se tornou uma máquina de programação automatizada.
Essa máquina não compete em desempenho, eficiência ou tamanho com uma placa de vídeo moderna, nem atingiu a escala que a Bitluni idealizou. Seu valor reside em demonstrar, por meio de componentes separados, tarefas que uma solução comercial concentra ou distribui entre chips e circuitos especializados: cálculo, controle, alimentação, coordenação e visualização. Ao recriar essas tarefas com microcontroladores de baixo custo, a empresa transformou uma ideia incomum em um sistema que pode ser projetado, testado e expandido em etapas. Não se trata de uma GPU convencional para o consumidor, mas de um experimento de engenharia levado a limites inusitados.
Imagens | Bitluni
Ver 0 Comentários