A VeriGPU projekt célja egy nyílt GPU létrehozása, amelyet az elektronikus rendszerek leíró és modellező nyelvén, a Verilogban fejlesztenek. A projekt kezdetben Verilog szimulátor használatával készül, de ha elkészül, valós chipek gyártására is használható lesz. A projekt eredményei MIT licence alatt kerülnek terjesztésre.
A VeriGPU speciális processzorként (ASIC) van pozicionálva, amelyet a gépi tanulással kapcsolatos számítások gyorsítására optimalizáltak. A tervek között szerepel a PyTorch mély gépi tanulási keretrendszerrel való kompatibilitás biztosítása, valamint a VeriGPU-ra épülő alkalmazások fejlesztési lehetőségének megvalósítása a HIP (Heterogeneous-Compute Interface) API használatával. Később nem zárható ki más API-k, például a SYCL és az NVIDIA CUDA támogatásának hozzáadása sem.
A GPU RISC-V utasításkészlet alapjain fejlődik, de a GPU utasításkészlet végső belső architektúrája gyengén kompatibilis a RISC-V ISA-val, mivel amikor a GPU tervezése nem illeszkedik a RISC-V elképzeléseibe, nem cél a RISC-V kompatibilitás fenntartása. A fejlesztés a gépi tanulási rendszerekhez szükséges képességekre összpontosít, ezért a chip mátrixának méretének és komplexitásának csökkentése érdekében csak a BF16 lebegőpontos számítási formátumot alkalmazza, és csak a gépi tanulás számára releváns lebegőpontos műveletek, például exp, log, tanh és sqrt állnak rendelkezésre.
A már elérhető komponensek között szerepel a GPU vezérlő, az APU (Accelerated Processing Unit) egész számokkal végzett műveletekhez (»+«, »-«, »/«, »*«), a lebegőpontos műveletekhez tartozó blokk (»+«, »*«) és az elágazás biztosításáért felelős blokk. Alkalmazások létrehozásához assembler és C++ kód LLVM alapú fordításának támogatása áll rendelkezésre. A tervezett lehetőségek közé tartozik az utasítások párhuzamos végrehajtása, a memória adat- és utasításkésleltetése, valamint a SIMT (Single instruction multiple thread) műveletek.

Forrás: opennet.ru
