HPVM, LLVM-kääntäjä suorittimille, GPU:ille, FPGA:ille ja laitteistokiihdyttimille

Projekti äskettäin LLVM ilmoitti julkaisevansa kääntäjän uusi versio HPVM 2.0 (heterogeeninen rinnakkainen virtuaalikone), jonka tavoitteena on yksinkertaistaa järjestelmien ohjelmointia ja tarjota työkaluja koodin luomiseen toimialuekohtaisille suorittimille, GPU:ille, FPGA:ille ja laitteistokiihdyttimille.

Heterogeenisten rinnakkaisten järjestelmien ohjelmointi on monimutkaista, koska järjestelmässä on komponentteja, jotka käyttävät eri malleja rinnakkaisuuden saavuttamiseksi (CPU-ytimet, vektorikäskyt, GPU:t jne.), erilaiset käskyjoukot ja erilaiset muistihierarkiat. Jokainen järjestelmä käyttää omaa näiden komponenttien yhdistelmää.

Pääidea HPVM-projektista on käyttää rinnakkaisten suoritettavien ohjelmien yhtenäistä esitystä käännettäessä, jota voidaan käyttää erityyppisissä laitteissa, jotka tukevat rinnakkaislaskentaa, mukaan lukien GPU:t, vektorikäskyt, moniytimiset prosessorit, FPGA:t ja erilaiset erikoistuneet kiihdytinsirut.

Toisin kuin muut järjestelmät, HPVM yritti yhdistää kolme vaihtoehtoa heterogeenisen laskennan järjestämiseen: väliesitys (IR), virtuaalinen käskysarjaarkkitehtuuri (V-ISA) ja ajonaikainen ohjelmointi ohjelmointikielestä ja laitteistosta riippumatta.

HPVM-väliesitys laajentaa LLVM-käskyjen väliesitystä käyttämällä hierarkkista tietovuokaaviota kaapata rinnakkaisuuden tehtävien, tietojen ja laskennallisten putkien tasolla. HPVM-väliesitys sisältää myös vektorikäskyt ja jaetun muistin. Väliesityksen käytön päätavoite on tehokas koodin generointi ja optimointi heterogeenisille järjestelmille.

Virtual Instruction Set Architecture (V-ISA) abstraktioi pois matalan tason laitteistosta ja yhdistää eri rinnakkaisuuden muodot ja muistiarkkitehtuurit käyttämällä vain taustalla olevaa samanaikaisuusmallia, datavirtakaaviota.

V-ISA mahdollistaa siirrettävyyden erityyppisten laitteiden välillä rinnakkaislaskentaa varten ja mahdollistaa sen, että suorituskykyä ei menetetä käytettäessä heterogeenisten järjestelmien eri elementtejä. Virtuaalista ISA:ta voidaan käyttää myös yleisen ohjelman suoritettavan koodin toimittamiseen, jota voidaan ajaa suorittimilla, grafiikkasuorittimilla, FPGA:illa ja erilaisilla kiihdyttimillä.

Joustavia laskennan ajoituskäytäntöjä sovelletaan ajon aikana ja ne toteutetaan ohjelmaa koskevien tietojen (graafisen rakenteen) perusteella ja kokoamalla yksittäisiä ohjelmasolmuja suoritettaviksi missä tahansa järjestelmän käytettävissä olevissa kohdetietokoneissa.

Projektin kehittämät koodigeneraattorit pystyvät kääntämään virtuaalisen ISA:n määrittämät sovellussolmut toimimaan NVIDIA GPU:illa (cuDNN ja OpenCL), Intel AVX -vektorikäskyillä, FPGA:illa ja x86-moniydinsuorittimilla. On huomattava, että HPVM-kääntäjien lähtöteho on verrattavissa käsin kirjoitettuun OpenCL-koodiin GPU- ja vektorilaskentalaitteille.

HPVM 2.0:n tärkeimmät uudet ominaisuudet

Osalta esitellyistä uutuuksista Tässä uudessa versiossa seuraavat erottuvat:

  • Hetero-C++-kielen käyttöliittymää ehdotetaan, mikä yksinkertaistaa sovelluskoodin rinnakkaisua C/C++-kielillä HPVM-kääntämistä varten. Hetero-C++ määrittelee laajennuksia tietotason rinnakkaisuudelle ja hierarkkisille tehtäville, jotka kartoitetaan HPVM-säiekaavioihin.
  • FPGA-taustaosa on lisätty tukemaan koodin suorittamista Intel FPGA:lla. Suorituksen järjestämiseen käytetään Intel FPGA SDK:ta OpenCL:lle.
  • DSE (Design Space Exploration) -kehys on lisätty, joka sisältää kääntäjien optimointeja ja pullonkaulojen havaitsemismekanismeja sovellusten automaattista viritystä varten tietylle laitteistoalustalle.
  • Kehys sisältää valmiin suorituskykymallin Intel FPGA:ille, ja sen avulla voit liittää omat prosessorisi optimoidaksesi minkä tahansa HPVM-yhteensopivan laitteen.
  • Optimointeja voidaan soveltaa sekä HPVM-tietovirran graafitasolla että LLVM-tasolla.
  • Päivitetty LLVM-komponentit versioon 13.0.
  • Koodi on järjestetty uudelleen, jotta koodikannassa, kirjastoissa ja apuohjelmissa liikkuminen on helpompaa.
  • Testauksen infrastruktuuria on parannettu, uusia testejä on lisätty erilaisille HPVM-komponenteille.

lopuksi, Jos olet kiinnostunut oppimaan lisää HPVM:stä, voit tarkistaa yksityiskohdat 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.