HPVM en LLVM-baséiert Compiler fir CPU, GPU, FPGA an Acceleratoren

De Projet Entwéckler LLVM verëffentlecht kuerzem den Heterogene Parallel Virtual Machine Compiler eraus (HPVM) 1.0, wat zielt vereinfacht Programméiere fir heterogen Systemer a bitt Code Generatiouns-Tools fir CPU, GPU, FPGA an Hardwareacceleratoren Domain spezifesch (Ënnerstëtzung fir FGPA an Acceleratoren war net an der Versioun 1.0 abegraff).

D'Haaptiddi hannert HPVM ass eng vereenegt Representatioun vun ausführbare Programmer gläichzäiteg ze kompiléieren déi kënne benotzt gi fir op verschidde parallel Hardware ze lafen, inklusiv GPUs, Vecteure-Instruktiounen, Multi-Core Prozessoren, FPGAs a verschidde spezialiséiert Beschleunigungschips.

Programméiere fir heterogen Parallelsystemer ass komplizéiert duerch d'Präsenz an engem System vu Komponenten (CPU Cores, Vektorinstruktiounen, GPUs, asw.) Déi verschidde Modeller benotze fir Parallelismus z'erreechen, verschidden Instruktiounssätz a verschidde Gedächtnishierarchien, an all System huet eng Kombinatioun vu sou Komponente ännert sech.

D'Illinois LLVM Compiler Research Group freet sech d'Open Source Verëffentlechung vun HPVM (Versioun 1.0) matzedeelen. HPVM ass e reorientéierende Compiler Framework gezielt op CPUs, GPUs an Acceleratoren (dës Verëffentlechung enthält keen Accelerator Support) [1]. HPVM benotzt en Zil-onofhängege Compiler IR deen den LLVM 9.0.0 Compiler IR mat enger explizit hierarchescher Datestream Representatioun verlängert déi Aufgaben, Daten a Pipeline Parallelismus erfaasst.

Dës Versioun ass eng wichteg Ergänzung zu eiser éischter Versioun (Versioun 0.5), déi d'Ënnerstëtzung fir linear Algebra Tensor Operatiounen, Pytorch a Keras Interfaces, Approximatioune fir Konvolutiounsoperateuren, an en effizienten a flexiblen Encadrement fir Approximatioun. 

Et sollt ee feststellen datt d'Benotzung vun HPVM kann bedeitend Performance Gewënn erreechen zënter hier eD'Ausgabeperformance vun HPVM Iwwersetzer ass vergläichbar mat deem vum OpenCL Code handgeschriwwe fir GPU a Vecteure Rechenapparater. Am Géigesaz zu anere Systemer huet HPVM probéiert dräi Méiglechkeeten ze kombinéiere fir heterogen Informatik ze organiséieren: Sprooch- an Hardware-onofhängeg Zwëscher Representatioun, virtuell Instruktiounsarchitektur (V-ISA) a Run-Time Programméierung.

Déi onofhängeg Zwëschenvertriedung (IR) vum Zilsystem an d'Programméierungssprooch déi an HPVM benotzt gëtt baséiert op der Zwëschenvertriedung vun den LLVM 9.0 Instruktiounen an erweidert et mat engem hierarcheschen Datenflussgraf fir Parallelismus op der Task-, Daten- a Berechnungsleitungsniveau ze decken.

Den HPVM Zwëschenzäit enthält och Vektorinstruktiounen a gemeinsame Gedächtnis. D'Haaptziel vun der Zwëscher Representatioun ass effizient Code Generatioun an Optimiséierung fir heterogen Systemer.

Virtuell Instruktioun Set Architektur (V-ISA) abstrakt niddereg Niveau Hardwarefeatures an vereenegt verschidde Forme vu Parallelismus a Gedächtnisarchitekturen nëmmen mat dem Basis Konkurrenzmodell, dem Datenflussgraf. V-ISA erlaabt Portabilitéit tëscht verschiddenen Aarte vu parallele Rechenausrüstung z'erreechen an erlaabt et keng Leeschtung ze verléieren wann Dir verschidden Elementer vun heterogene Systemer benotzt. Virtuell ISA kann och benotzt ginn fir en universellen ausführbaren Programmcode ze liwweren deen mat CPU, GPU, FPGA a verschiddene Beschleuniger lafe kann.

Op der aktueller Stuf vun der Entwécklung, HPVM bitt Code Generatoren déi fäeg sinn d'Applikatiounsknoten z'iwwersetzen definéiert vun ISA Virtuell fir mat NVIDIA GPUs (cuDNN an OpenCL), Intel AVX Vektor Instruktiounen a Multi-Core x86 CPUs ze lafen. }

Wärend der Ausféierung applizéiert HPVM flexibel Schedulingspolitik fir de Berechnungsprozess, implementéiert souwuel op der Basis vun Informatioun iwwer de Programm (grafesch Struktur) an duerch d'Kompiléierung vun eenzelne Programmnoden fir d'Ausféierung op engem vun de Rechenapparater vun der Destinatioun déi am System verfügbar sinn.

Am Verglach mat der éischter Virschau Versioun, HPVM 1.0 enthält Ënnerstëtzung fir linear Algebra Tensor Operatiounen, Interfaces fir Pytorch a Keras an en Approximatiouns-Ofstëmmungsrahmen deen automatesch optimal Approximatioune fir gewësse Tensor-Operatiounen auswielt a wielt en Astellung fir eng optimal Leeschtung.

Schlussendlech, wann Dir interesséiert sidd méi iwwer dëse Compiler ze wëssen, Dir kënnt d'Detailer am folgende Link kontrolléieren.


Den Inhalt vum Artikel hält sech un eis Prinzipie vun redaktionnell Ethik. Fir e Feeler ze mellen klickt hei.

Gitt d'éischt fir ze kommentéieren

Gitt Äre Kommentar

Är Email Adress gëtt net publizéiert ginn. Néideg Felder sinn markéiert mat *

*

*

  1. Responsabel fir d'Daten: Miguel Ángel Gatón
  2. Zweck vun den Donnéeën: Kontroll SPAM, Kommentarmanagement.
  3. Legitimatioun: Är Zoustëmmung
  4. Kommunikatioun vun den Donnéeën: D'Donnéeë ginn net un Drëttubidder matgedeelt ausser duerch legal Verpflichtung.
  5. Datenspeicher: Datebank gehost vun Occentus Networks (EU)
  6. Rechter: Zu all Moment kënnt Dir Är Informatioun limitéieren, recuperéieren an läschen.