O projeto VeriGPU desenvolve uma GPU aberta na linguagem Verilog

O projeto VeriGPU visa criar uma GPU aberta desenvolvida na linguagem Verilog para descrição e modelagem de sistemas eletrônicos. Inicialmente, o projeto está sendo desenvolvido em um simulador Verilog, mas depois de concluído poderá ser utilizado para a produção de chips reais. Os desenvolvimentos do projeto são distribuídos sob licença do MIT.

VeriGPU está posicionado como um processador específico de aplicativo (ASIC) otimizado para acelerar cálculos relacionados a sistemas de aprendizado de máquina. Os planos incluem compatibilidade com a estrutura de aprendizado de máquina profundo PyTorch e a capacidade de desenvolver aplicativos para VeriGPU usando a API HIP (Heterogeneous-Compute Interface). Futuramente será possível adicionar suporte a outras APIs, como SYCL e NVIDIA CUDA.

A GPU evolui a partir do conjunto de instruções RISC-V, mas a arquitetura interna resultante do conjunto de instruções da GPU é fracamente compatível com o ISA RISC-V, pois em situações onde o design da GPU não se enquadra na representação RISC-V, é não se destina a manter a compatibilidade com RISC-V. O desenvolvimento está focado nas capacidades necessárias para sistemas de aprendizado de máquina, portanto, para reduzir o tamanho e a complexidade da matriz do chip, utiliza apenas o formato de ponto flutuante BF16 e apenas as operações de ponto flutuante necessárias para aprendizado de máquina, como exp, log, tanh e sqrt, estão disponíveis.

Entre os componentes já disponíveis estão o controlador GPU, APU (Unidade de Processamento Acelerado) para operações inteiras (“+”,”-“,”/,”,”*”), e uma unidade para operações de ponto flutuante (“+,” ,”*”) e um bloco de ramificação. Para criar aplicações, oferece montador e suporte para compilação de código C++ baseado em LLVM. Entre as capacidades planejadas, destacam-se a execução paralela de instruções, cache de dados e memória de instruções e operações SIMT (Single Instruction Multiple Thread).

O projeto VeriGPU desenvolve uma GPU aberta na linguagem Verilog


Fonte: opennet.ru

Adicionar um comentário