No mundo da IA de ponta, o Raspberry Pi é uma espécie de fera. Mas isso, é claro, ocorre apenas quando comparado a dispositivos com recursos extremamente limitados, como microcontroladores. Ao entrar no reino dos algoritmos generativos de IA de ponta, como grandes modelos de linguagem, um Raspberry Pi ficará rapidamente de joelhos. Ele simplesmente não possui os recursos de processamento paralelo ou a memória necessária para executar esses modelos com eficiência (ou de todo).
Ou pelo menos, esse costumava ser o caso. Jeff Geerling descreveu recentemente alguns avanços que tornaram possível executar praticamente qualquer GPU NVIDIA em um Raspberry Pi. Agora, conectar uma GPU A4000 a um Raspberry Pi pode não fazer muito sentido. Se você precisar desse tipo de potência, você irá conectá-lo a um computador adequado para não introduzir gargalos desnecessários que tornem as coisas mais lentas. No entanto, a praticidade nunca impediu Geerling, então ele fiz isso de qualquer maneirasó porque ele podia.
A exibição precisa de um pouco de trabalho (📷: Jeff Geerling)
Há alguns meses, a comunidade viu as GPUs AMD ganharem vida na pequena placa graças a um patch de driver de 15 linhas do usuário do GitHub, yanghaku. Esta semana, o usuário do GitHub, mariobalanica, levou o esforço ainda mais longe com um patch de módulo de kernel significativamente maior, permitindo suporte a GPU NVIDIA em plataformas ARM, incluindo o Raspberry Pi. Com um Pi 5, uma nova instalação do Pi OS 13 e o driver NVIDIA 580.95.05 ARM64, Geerling compilou os módulos do kernel de código aberto e inicializou o sistema. nvidia-smi reconheceu corretamente o RTX A4000 pendurado no hyperlink PCIe do Pi, relatando uso de energia, temperatura e estatísticas de memória como se estivesse rodando em uma estação de trabalho.
Apesar do sucesso, nenhuma imagem apareceu by way of DisplayPort, mesmo com a GPU integrada desativada. Mas o desempenho computacional, que foi o verdadeiro motivo para amarrar uma GPU de classe de estação de trabalho a este pequeno computador, é promissor. Usando llama.cpp com aceleração Vulkan, Geerling alcançou velocidades de inferência impressionantes para um modelo de linguagem 3B.
A mesma abordagem básica foi projetada para funcionar também em outras placas ARM, incluindo sistemas mais rápidos como aqueles baseados no RK3588. À medida que os patches de driver evoluem e o suporte de exibição melhora, o futuro pode trazer fluxos de trabalho completos de GPU para dispositivos que cabem na palma da sua mão – faça sentido ou não.