HPVM en LLVM-baseret compiler til CPU, GPU, FPGA og acceleratorer

Udviklerne af projektet LLVM frigivet frigav for nylig den heterogene parallelle virtuelle maskinkompilator (HPVM) 1.0, som sigter mod forenkle programmering af heterogene systemer og leverer kodegenereringsværktøjer til CPU-, GPU-, FPGA- og hardwareacceleratorer domænespecifik (support til FGPA og acceleratorer var ikke inkluderet i version 1.0).

Hovedideen bag HPVM er at kompilere en samlet repræsentation af eksekverbare programmer samtidigt der kan bruges til at køre på en række parallelle hardware, herunder GPU'er, vektorinstruktioner, multi-core processorer, FPGA'er og forskellige specialiserede acceleratorchips.

Programmering af heterogene parallelle systemer kompliceres af tilstedeværelsen i et system af komponenter (CPU-kerner, vektorinstruktioner, GPU'er osv.), Der bruger forskellige modeller til at opnå parallelisme, forskellige instruktionssæt og forskellige hukommelseshierarkier, og hvert system har en kombination af sådanne komponenter ændrer sig.

Illinois LLVM Compiler Research Group er glad for at kunne annoncere open source-udgivelsen af ​​HPVM (version 1.0). HPVM er en omorienteret compiler-ramme, der er målrettet mod CPU'er, GPU'er og acceleratorer (denne udgave inkluderer ikke acceleratorsupport) [1]. HPVM bruger en måluafhængig kompilator-IR, der udvider LLVM 9.0.0-kompilator-IR med en eksplicit hierarkisk datastrømrepræsentation, der fanger opgaver, data og pipeline-parallelitet.

Denne version er en vigtig tilføjelse til vores første version (version 0.5), som tilføjer understøttelse af lineære algebra tensoroperationer, Pytorch- og Keras-grænseflader, tilnærmelser til opløsningsoperatører og en effektiv og fleksibel ramme til tilnærmelsesmontering. 

Det skal bemærkes, at brugen af HPVM kan opnå betydelige præstationsgevinster eftersom eHPVM-oversætternes outputydelse kan sammenlignes med OpenCL-kode håndskrevet til GPU- og vektor-computerenheder. I modsætning til andre systemer forsøgte HPVM at kombinere tre muligheder for at organisere heterogen computing: sprog- og hardwareuafhængig mellemrepræsentation, virtuel instruktions sætarkitektur (V-ISA) og run-time programmering.

Den uafhængige mellemrepræsentation (IR) af målsystemet og det programmeringssprog, der anvendes i HPVM, er baseret på den mellemliggende gengivelse af LLVM 9.0-instruktionerne og udvider det med en hierarkisk datastrømningsgraf for at dække parallelisme på opgave-, data- og beregningsrørledningsniveau.

HPVM-mellemproduktet inkluderer også vektorinstruktioner og delt hukommelse. Hovedmålet med at bruge mellemrepræsentation er effektiv kodegenerering og optimering til heterogene systemer.

Virtuel instruktionssætarkitektur (V-ISA) opsummerer hardware-funktioner på lavt niveau og forener forskellige former for parallelisme og hukommelsesarkitekturer ved kun at bruge den grundlæggende samtidige model, datastrømningsgrafen. V-ISA giver mulighed for at opnå bærbarhed mellem forskellige typer parallelt databehandlingsudstyr og tillader ikke at miste ydeevne, når man bruger forskellige elementer i heterogene systemer. Virtuel ISA kan også bruges til at levere universel eksekverbar programkode, der kan køres ved hjælp af CPU, GPU, FPGA og forskellige acceleratorer.

På det nuværende udviklingsstadium, HPVM tilbyder kodegeneratorer, der er i stand til at oversætte de applikationsnoder, der er defineret af ISA virtuelt til udførelse ved hjælp af NVIDIA GPU'er (cuDNN og OpenCL), Intel AVX-vektorinstruktioner og multi-core x86-CPU'er. }

Under udførelsen anvender HPVM fleksible planlægningspolitikker for beregningsprocessen, implementeret både på basis af information om programmet (grafisk struktur) og gennem kompilering af individuelle programknudepunkter til udførelse på en hvilken som helst af de computerenheder til destinationen, der er tilgængelige i systemet.

Sammenlignet med den første preview-version, HPVM 1.0 inkluderer understøttelse af lineære algebra tensoroperationer, grænseflader til Pytorch og Keras og en tilnærmelsesindstillingsramme, der automatisk vælger optimale tilnærmelser til bestemte tensoroperationer og vælger en indstilling for optimal ydeevne.

Endelig, hvis du er interesseret i at vide mere om denne kompilator, Du kan kontrollere detaljerne i følgende link.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.