Avaldatud on HPVM 2.0, kompilaator CPU, GPU, FPGA ja riistvarakiirendite jaoks.

LLVM projekt esitles HPVM 2.0 (Heterogeneous Parallel Virtual Machine) kompilaatorit, mille eesmärk on lihtsustada heterogeensete süsteemide programmeerimist ja pakkuda vahendeid koodi genereerimiseks CPU, GPU, FPGA ja rakenduspõhiste riistvarakiirendite jaoks. Projekti kood levib Apache 2.0 litsentsi alusel.

Heterogeensete paralleelsete süsteemide programmeerimine on keeruline, kuna ühes süsteemis on komponente, mis kasutavad erinevaid paralleelsuse saavutamise mudeleid (CPU kärgid, vektoriinstruktsioonid, GPU jne), erinevaid käskluste kogumeid ja erinevaid mäluhierarhiasid. Igas süsteemis kasutatakse enda kombinatsiooni sellistest komponentidest. HPVM projekti peamine idee on kasutada kompileerimise ajal ühtset esitamist paralleelselt töötavatest programmidest, mida saab rakendada erinevat tüüpi seadmetele, mis toetavad arvutuste paralleelset töötlemist, sealhulgas GPU, vektoriinstruktsioone, mitme tuumaga protsessoreid, FPGA ja erinevaid spetsialiseeritud kiip-kiirendajaid.

HPVM süsteemist erinevalt püütakse kolm võimalust heterogeensete arvutuste korraldamiseks ühendada — programmeerimiskeeltest ja riistvarast sõltumatu vaheesitus (IR), virtuaalne käsu komplekti arhitektuur (V-ISA) ja käitamise ajal plaanimine (runtime scheduling):

  • HPVM vaheesitus laiendab LLVM käsu vaheesitust, rakendades hierarhilist andmevoogude graafi, mis võimaldab hõlmata paralleelsust ülesannete, andmete ja arvutustehnoloogia torude tasemel. HPVM vaheesitus sisaldab ka vektori käske ja jagatud mälu. Vaheesituse peamine eesmärk on tõhus koodi genereerimine ja optimeerimine heterogeensete süsteemide jaoks.
  • Virtuaalarhitektuuri komandihulgad (V-ISA) abstraktiseerib madala taseme riistvara omadusi ja unifitseerib erinevaid paralleelsuse ja mälu arhitektuuri vorme, kasutades ainult põhielementide paralleelsuse mudelit — andmevoogude graafikut. V-ISA võimaldab saavutada ülekantavust erinevat tüüpi riistvara vahel paralleelsetes arvutustes ning ei lase tootlikkust kaotada erinevate heterogeensete süsteemide elementide kasutamisel. Virtuaalne ISA saab samuti kasutada ühtse käivitatava koodi tarnimiseks, mis võib käivituda CPU, GPU, FPGA ja erinevate kiirendite kaasamisel.
  • Paindlikud arvutusprotsessi ajastamise poliitikad rakendatakse käitamise ajal ning need põhinevad nii programmi teabele (graafile) kui ka konkreetsete programmi sõlmede kompileerimisel, et need saaksid töötada mis tahes siht-arvutusseadmestikus, mis on süsteemis saadaval.

Arendatavad koodigeneraatorid suudavad tõlkida rakenduste sõlmi, mis on määratletud virtuaalse ISA abil, et neid käitada NVIDIA GPU-de (cuDNN ja OpenCL), Intel AVX vektorite, FPGA-de ja mitme tuumaga x86 CPU-de abil. Tõlgendajate HPVM väljundite jõudlus on võrreldav käsitsi kirjutatud OpenCL koodiga GPU-de ja vektorkalkulaatorite jaoks.

HPVM 2.0 peamised uuendused:

  • Sisse on viidud keeleliides Hetero-C++, mis lihtsustab koodi paraleliseerimist C/C++ keeltes HPVM-i jaoks kompileerimiseks. Hetero-C++ määratleb andmeparalelismi ja hierarhiate ülesannete laiendused, mida muudetakse HPVM-i voogugrafikuks.
  • Lisatud FPGA taust, mis tagab koodi täitmise toe Intel FPGA-de jaoks. Täitmise korraldamiseks kasutatakse Intel FPGA SDK-d OpenCL-iga.
  • DSE (Design Space Exploration) raamistik on lisatud, sisaldades kompilaatori optimeerimisi ja kitsaskohtade tuvastamise mehhanisme, et automatiseerida rakenduste häälestamist antud riistvara platvormile. Raamistik sisaldab Intelilt saadud FPGA jaoks valmis jõudlusmudelit ja võimaldab lisada oma töötlusi, et optimeerida mistahes seadmete jaoks, mida HPVM toetab. Optimeeringud võivad kehtida nii HPVM andmevoogude graafi tasemel kui ka LLVM tasemel.
  • LLVM komponendid on uuendatud versioonini 13.0.
  • Koodi on reorganiseeritud, et lihtsustada navigeerimist koodibaasis, raamatukogudes ja utiliitides.
  • Testimise infrastruktuuri on parendatud, lisatud on uusi teste erinevate HPVM komponentide jaoks.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster