VeriGPU-projektet sigter mod at skabe et åbent GPU, der udvikles på beskrivelses- og modelleringssproget Verilog. Projektet udvikles oprindeligt ved hjælp af Verilog-simulatoren, men når det er klar, vil det kunne bruges til produktion af virkelige chips. Projektets resultater distribueres under MIT-licensen.
VeriGPU positionerer sig som en specialiseret processor (ASIC), optimeret til at accelerere beregninger relateret til machine learning-systemer. I planerne nævnes det at sikre kompatibilitet med deep learning-rammeværket PyTorch og implementere muligheder for udvikling af applikationer til VeriGPU ved hjælp af HIP (Heterogeneous-Compute Interface) API. Fremadskuende udelukkes ikke tilføjelse af støtte til andre API'er som SYCL og NVIDIA CUDA.
GPU'en udvikles baseret på RISC-V instruktion sættet, men den endelige interne arkitektur af GPU-instruktionssættet er svagt kompatibel med RISC-V ISA, da hvis designet af GPU'en ikke passer ind i RISC-V's forståelse, er der ikke noget krav om at opretholde kompatibilitet med RISC-V. Udviklingen fokuserer på de funktioner, der er nødvendige for machine learning-systemer, så der bruges kun BF16 formatet til flydende beregninger for at reducere størrelsen og kompleksiteten af chipmatrixen, og kun de mest efterspurgte flydende operationer til machine learning er tilgængelige, såsom exp, log, tanh og sqrt.
Blandt de allerede tilgængelige komponenter nævnes GPU-controlleren, APU (Accelerated Processing Unit) til heltalsoperationer («+», «-», «/», «*»), en blok til flydende operationer («+», «*») og en blok til håndtering af forgrening. Til udvikling af applikationer tilbydes en assembler og understøttelse af kompilering af kode i C++ baseret på LLVM. De planlagte funktionaliteter inkluderer parallel udførelse af instruktioner, caching af data- og instructionshukommelsen samt SIMT (Single Instruction Multiple Thread) operationer.

Kilde: opennet.ru
