Proiectul VeriGPU are ca scop crearea unui GPU deschis, dezvoltat pe baza limbajului de descriere și modelare a sistemelor electronice Verilog. Inițial, proiectul este dezvoltat utilizând un simulator Verilog, dar, după ce va fi finalizat, va putea fi utilizat pentru producerea de cipuri reale. Dezvoltările proiectului sunt distribuite sub licența MIT.
VeriGPU este poziționat ca un procesor specializat (ASIC), optimizat pentru accelerarea calculelor legate de sistemele de învățare automată. Planurile menționează asigurarea compatibilității cu cadrul de învățare profundă PyTorch și implementarea posibilității de a dezvolta aplicații pentru VeriGPU folosind API HIP (Heterogeneous-Compute Interface). În viitor, nu se exclude adăugarea suportului pentru alte API-uri, cum ar fi SYCL și NVIDIA CUDA.
GPU-ul se dezvoltă pe baza unui set de instrucțiuni RISC-V, dar arhitectura internă finală a setului de instrucțiuni GPU este slab compatibilă cu RISC-V ISA, deoarece în situațiile în care proiectarea GPU-ului nu se aliniază cu specificațiile RISC-V, nu se urmărește menținerea compatibilității cu RISC-V. Dezvoltarea se concentrează pe capacitățile necesare pentru sistemele de învățare automată, motiv pentru care, pentru a reduce dimensiunea și complexitatea matricei cipului, este utilizat doar formatul de calcul în virgulă mobilă BF16, iar doar operațiile în virgulă mobilă solicitate pentru învățarea automată sunt disponibile, cum ar fi exp, log, tanh și sqrt.
Printre componentele deja disponibile se numără controlerul GPU, APU (Accelerated Processing Unit) pentru operații întregi („+”, „-”, „/”, „*”), un bloc pentru operații în virgulă mobilă („+”, „*”) și un bloc pentru gestionarea ramificărilor. Pentru crearea aplicațiilor se propune un asamblor și suport pentru compilarea codului în C++ bazat pe LLVM. Printre funcționalitățile planificate se remarcă execuția paralelă a instrucțiunilor, stocarea în cache a datelor și instrucțiunilor și operațiile SIMT (Single instruction multiple thread).

Sursa: opennet.ro
