Mradi wa VeriGPU unalenga kuunda GPU huria iliyotengenezwa kwa kutumia maelezo ya mfumo wa kielektroniki wa Verilog na lugha ya uundaji wa modeli. Hapo awali, mradi huo unatengenezwa kwa kutumia kiigaji cha Verilog, lakini ukiwa tayari, utatumika kutengeneza chipu halisi. Maendeleo ya mradi huo yanasambazwa chini ya leseni ya MIT.
VeriGPU imewekwa kama kichakataji cha ASIC kilichoboreshwa kwa ajili ya kuharakisha hesabu za kujifunza kwa mashine. Mipango inajumuisha utangamano na mfumo wa kujifunza kwa kina wa PyTorch na uwezo wa kutengeneza programu za VeriGPU kwa kutumia API ya Heterogeneous-Compute Interface (HIP). Usaidizi wa API zingine, kama vile SYCL na NVIDIA CUDA, pia unawezekana katika siku zijazo.
GPU inatengenezwa kulingana na seti ya maagizo ya RISC-V, lakini usanifu wa ndani unaotokana wa seti ya maagizo ya GPU hauendani vizuri na RISC-V ISA. Katika hali ambapo muundo wa GPU hauendani ndani ya mfumo wa RISC-V, kudumisha utangamano wa RISC-V sio lengo. Uundaji huo unazingatia uwezo unaohitajika kwa mifumo ya kujifunza kwa mashine. Kwa hivyo, ili kupunguza ukubwa na ugumu wa die ya chipu, ni umbizo la nukta inayoelea ya BF16 pekee linalotumika, na shughuli za nukta inayoelea pekee zinazohitajika kwa kujifunza kwa mashine, kama vile exp, log, tanh, na sqrt, zinapatikana.
Vipengele vinavyopatikana ni pamoja na kidhibiti cha GPU, APU (Kitengo cha Usindikaji Kilichoharakishwa) kwa shughuli kamili ("+", "-", "/", "*"), kitengo cha sehemu inayoelea ("+", "*"), na kitengo cha matawi. Kikusanyaji na usaidizi wa kukusanya msimbo wa C++ kulingana na LLVM vinapatikana kwa ajili ya ukuzaji wa programu. Vipengele vilivyopangwa ni pamoja na utekelezaji sambamba wa maagizo, uhifadhi wa kumbukumbu ya data na maagizo, na shughuli za SIMT (Uzi Nyingi wa Maagizo Moja).

Chanzo: opennet.ru
