VeriGPU-projekti kehittää avoimen GPU:n Verilog-kielellä

VeriGPU-projektin tavoitteena on luoda avoin GPU, joka on kehitetty Verilog-kielellä elektronisten järjestelmien kuvaamiseen ja mallintamiseen. Aluksi projektia kehitetään Verilog-simulaattorilla, mutta valmistuttuaan sitä voidaan käyttää oikeiden sirujen valmistukseen. Projektin kehitystyötä jaetaan MIT-lisenssillä.

VeriGPU on sijoitettu sovelluskohtaiseksi prosessoriksi (ASIC), joka on optimoitu nopeuttamaan koneoppimisjärjestelmiin liittyviä laskelmia. Suunnitelmiin kuuluu yhteensopivuus PyTorchin syvän koneoppimiskehyksen kanssa ja mahdollisuus kehittää sovelluksia VeriGPU:lle HIP (Heterogeneous-Compute Interface) API:n avulla. Jatkossa on mahdollista lisätä tuki muille API:ille, kuten SYCL ja NVIDIA CUDA.

GPU kehittyy RISC-V-käskyjoukosta, mutta tuloksena oleva GPU-käskyjoukon sisäinen arkkitehtuuri on heikosti yhteensopiva RISC-V ISA:n kanssa, koska tilanteissa, joissa GPU-suunnittelu ei sovi RISC-V-esitykseen, se on ei ole tarkoitettu ylläpitämään RISC-V-yhteensopivuutta. Kehitys keskittyy koneoppimisjärjestelmien vaatimiin ominaisuuksiin, joten sirumatriisin koon ja monimutkaisuuden vähentämiseksi se käyttää vain BF16 liukulukumuotoa ja vain koneoppimisen edellyttämiä liukulukuoperaatioita, kuten exp, log, tanh ja sqrt ovat saatavilla.

Jo saatavilla olevia komponentteja ovat GPU-ohjain, APU (Accelerated Processing Unit) kokonaislukuoperaatioille ("+","-","/,","*") ja yksikkö liukulukuoperaatioille ("+", ”*”) ja haarautuva lohko. Sovellusten luomiseen se tarjoaa kokoajan ja tuen LLVM-pohjaisen C++-koodin kääntämiseen. Suunniteltujen ominaisuuksien joukossa korostuvat käskyjen rinnakkaissuoritus, tiedon ja käskymuistin välimuisti sekä SIMT (Single instruction multiple thread) -toiminnot.

VeriGPU-projekti kehittää avoimen GPU:n Verilog-kielellä


Lähde: opennet.ru

Lisää kommentti