VeriGPU-projekti ilmoitti avoimen GPU:n kehittämisestä

El proyecto VeriGPU paljastettiin muutama päivä sitten on aloittanut avoimen GPU:n kehittämistyön, joka on tarkoitus kehittää mallinnuskielen ja elektronisten järjestelmien kuvauksen Verilog alla.

Niiden, jotka eivät tunne VeriGPU:ta, sinun tulee tietää, että se on sijoitettu sovelluskohtaiseksi prosessoriksi (ASIC), joka on optimoitu nopeuttamaan koneoppimisjärjestelmiin liittyviä laskelmia.

tapa aloittaa, projektia kehitetään Verilog-simulaattorilla, mutta kun se on valmis, sitä voidaan käyttää oikeiden sirujen valmistamiseen.

Suunnitelmiin kuuluu tuki PyTorchin syväoppimiskehykselle ja kyky kehittää sovelluksia VeriGPU:lle HIP (Heterogeneous Computing Interface) API:n avulla. Tulevaisuudessa muiden API:iden, kuten SYCL:n ja NVIDIA CUDA:n, tuen sisällyttäminen ei ole poissuljettua.

On tärkeää mainita se tämän GPU:n kehitys on suunnattu suoraan koneoppimiskoulutukseen. Sen pitäisi siis ihanteellisesti tukea nykyisiä koneoppimiskehyksiä, kuten PyTorch ja Tensorflow, mikä tarkoittaa, että sen on lähes varmasti tuettava NVIDIA CUDA:ta tai AMD HIP:tä.

Vaikka sekin mainitaan Tiedän, että voisin toteuttaa OpenCL- tai SYCL-rajapinnan, vaikka tuki suurille kehyksille on tällä hetkellä rajallista. DeepCL:ssä on oma OpenCL-syväoppimiskehys, mutta siinä on suhteellisen rajoitettu joukko hermoverkkokerroksia ja mahdollisia verkkotopologioita PyTorchiin ja Tensorflowiin verrattuna.

Tällä hetkellä emme aio toteuttaa out-of-order-suoritusta, eli yhden käskyn aloittamista ennen kuin edellinen on alkanut, koska tämä on hankalaa SIMT-skenaariossa ja koska ytimet kuluttavat enemmän kuomualuetta. , ja siksi niitä on vähemmän (tai kalliimpia).

Toisaalta toteutamme rinnakkaisen käskyn suorituksen, jossa käynnistetään käsky, kun edellinen käsky on vielä suorittamassa. Tämä on vakio ja melko kevyt, se ei vie liikaa kuomualuetta.

Mitään välimuistia ei ole tällä hetkellä toteutettu (ei tasoa 1, ei tasoa 2, ei tasoa 3, ei edes käskyjen välimuistia :P). Koska aion tehdä GPU:n, jolla on erilainen välimuistimekanismi kuin CPU:lla, mietin tätä heti, kun se alkaa näyttää enemmän GPU:lta.

GPU kehittyy RISC-V-käskysarjan perusteella, mutta tuloksena oleva sisäinen GPU-käskysarja-arkkitehtuuri on huonosti yhteensopiva RISC-V ISA:n kanssa, koska tilanteissa, joissa GPU-asettelu ei ole RISC-V-renderöinnin mukainen, sen lisäksi, että se ei aseta tehtäväksi ylläpitää yhteensopivuutta RISC-V:n kanssa .

Kehityksestä lähtien keskittyy koneoppimisjärjestelmien vaatimiin ominaisuuksiin, siksi sirutaulukon koon ja monimutkaisuuden vähentämiseksi käytetään vain BF16-liukulukumuotoa ja vain koneoppimiseen vaadittavia liukulukuoperaatioita, kuten exp, log, tanh ja sqrt. saatavilla.

Jo saatavilla olevista komponenteista ovat esimerkiksi GPU-ohjain, APU (Accelerated Processing Unit) kokonaislukuoperaatioille («+»,-«,»/»,*»), yksikkö liukulukuoperaatioille («+ », »*») ja haarayksikkö sekä tuki HIP-kääntäjälle.

Sovellusten luomiseen Assembler ja tuki C++-koodin kääntämiseen tarjotaan LLVM:n perusteella. Odotetuista ominaisuuksista erottuvat käskyjen rinnakkaissuoritus, tiedon välimuisti ja käskymuisti sekä SIMT (Single Instruction Multiple Thread) -toiminnot.

lopuksi, jos olet kiinnostunut tietämään siitä lisää Tämän avoimen lähdekoodin GPU:n kehityksestä sinun tulee tietää, että projektin kehitystyöt jaetaan MIT-lisenssillä ja voit tutustua koodiin sekä projektin etenemiseen alkaen seuraava linkki.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.