Objavljen HPVM 2.0, prevajalnik za CPE, GPE, FPGA in strojne pospeševalnike

Projekt LLVM je predstavil izdajo prevajalnika HPVM 2.0 (Heterogeneous Parallel Virtual Machine), namenjenega poenostavitvi programiranja za heterogene sisteme in zagotavljanju orodij za generiranje kode za CPE, GPU, FPGA in domensko specifične strojne pospeševalnike. Koda projekta se distribuira pod licenco Apache 2.0.

Programiranje za heterogene vzporedne sisteme je zapleteno zaradi prisotnosti v enem sistemu komponent, ki uporabljajo različne modele za doseganje vzporednosti (jedra CPE, vektorska navodila, GPE itd.), različnih nizov navodil in različnih pomnilniških hierarhij. Vsak sistem uporablja svojo kombinacijo teh komponent. Glavna ideja projekta HPVM je uporaba pri sestavljanju enotne predstavitve vzporednih programov, ki se lahko uporabljajo za različne vrste strojne opreme, ki podpira vzporedno računalništvo, vključno z grafičnimi procesorji, vektorskimi navodili, večjedrnimi procesorji, FPGA in različnimi specializiranimi pospeševalni čipi.

Za razliko od drugih sistemov je HPVM poskušal združiti tri možnosti za organizacijo heterogenega računalništva - vmesno predstavitev (IR), arhitekturo navideznega nabora ukazov (V-ISA) in razporejanje izvajalnega časa, neodvisno od programskega jezika in opreme:

  • Vmesna predstavitev HPVM razširja vmesno predstavitev navodil LLVM z uporabo hierarhičnega grafa toka podatkov za zajem vzporednosti na ravni nalog, podatkov in računalniških cevovodov. Vmesna predstavitev HPVM vključuje tudi vektorska navodila in skupni pomnilnik. Glavni namen uporabe vmesne predstavitve je učinkovito generiranje kode in optimizacija za heterogene sisteme.
  • Arhitektura navideznega nabora ukazov (V-ISA) abstrahira strojno opremo nizke ravni in združuje različne oblike vzporednosti in pomnilniških arhitektur z uporabo le osnovnega modela sočasnosti, grafa pretoka podatkov. V-ISA omogoča doseganje prenosljivosti med različnimi vrstami strojne opreme za vzporedno računalništvo in omogoča, da ne izgubite zmogljivosti pri uporabi različnih elementov heterogenih sistemov. Virtual ISA se lahko uporablja tudi za dostavo generične programske izvršljive kode, ki se lahko izvaja na CPE, GPE, FPGA in različnih pospeševalnikih.
  • Prilagodljive politike razporejanja računalniških procesov se uporabljajo med izvajanjem in se izvajajo tako na podlagi informacij o programu (struktura grafa) kot s sestavljanjem posameznih programskih vozlišč za izvajanje na kateri koli od ciljnih računalniških naprav, ki so na voljo v sistemu.

Generatorji kode, razviti v okviru projekta, so sposobni prevajati vozlišča aplikacij, definirana z uporabo virtualnega ISA za izvajanje z uporabo grafičnih procesorjev NVIDIA (cuDNN in OpenCL), vektorskih navodil Intel AVX, FPGA in večjedrnih procesorjev x86. Opozoriti je treba, da je zmogljivost rezultatov prevajalnikov HPVM primerljiva z ročno napisano kodo OpenCL za GPE in vektorske računalniške naprave.

Glavne novosti HPVM 2.0:

  • Predlaga se vmesnik jezika Hetero-C++, ki poenostavlja paralelizacijo kode aplikacije C/C++ za prevajanje v HPVM. Hetero-C++ definira razširitve za paralelizem na ravni podatkov in hierarhične naloge, ki so preslikane v grafe niti HPVM.
  • Dodano je bilo zaledje FPGA za podporo izvajanja kode na Intel FPGA. Za organizacijo izvajanja se uporablja Intel FPGA SDK za OpenCL.
  • Dodano je bilo ogrodje DSE (Design Space Exploration), ki vključuje optimizacije prevajalnika in mehanizme za odkrivanje ozkih grl za samodejno prilagajanje aplikacij za določeno platformo strojne opreme. Ogrodje vsebuje že pripravljen model zmogljivosti za FPGA podjetja Intel in omogoča povezavo lastnih procesorjev za optimizacijo za katero koli napravo, ki jo podpira HPVM. Optimizacije je mogoče uporabiti na ravni grafa podatkovnega toka HPVM in na ravni LLVM.
  • Komponente LLVM posodobljene na različico 13.0.
  • Koda je bila reorganizirana za lažjo navigacijo po kodni bazi, knjižnicah in pripomočkih.
  • Izboljšana je infrastruktura za testiranje, dodani so novi testi za različne komponente HPVM.

Vir: opennet.ru

Dodaj komentar