Open Source: Compiler HPVM 1.0 abstrahiert heterogene Parallelität

Die erste Hauptversion des quelloffenen Compilers ist für ein breites Spektrum an Hardware gedacht: CPUs, GPUs, Accelerators und FPGAs.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Open Source: Compiler HPVM 1.0 abstrahiert heterogene Parallelität
Lesezeit: 2 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

In Sachen Compiler-Infrastruktur tut sich Neues im Open-Source-Bereich: Der Compiler HPVM hat die erste Hauptversion erreicht und zielt auf ein möglichst breites Spektrum an Einsatzmöglichkeiten ab. HPVM nutzt laut Ankündigung eine vom Ziel unabhängige Intermediate Representation (IR), die auf der Version 9.0 der Compiler-Infrastruktur LLVM aufsetzt. Das erste HPVM-Hauptrelease unterstützt unter anderem die Frontends von PyTorch und Keras sowie Tensor-Operationen der linearen Algebra.

Der HPVM (die Abkürzung steht für Heterogeneous Parallel Virtual Machine) basiert auf dem Compiler-Stack des LLVM (früher: Low Level Virtual Machine). Die technische Entwicklung der beiden hat die gleichen Wurzeln und geht zurück auf Projekte an der Universität von Illinois. Ziel des HPVM ist laut der Website des Forschungsprojekts, das Programmieren heterogener Systeme zu vereinfachen. So ist das aktuelle Release 1.0 auf unterschiedliche Hardware ausgelegt, unter anderem mehrkernige CPUs, Graphikprozessoren (GPUs, insbesondere von Nvidia) – domänenspezifische Field Programmable Gate Arrays (FPGAs) und weitere Hardware-Beschleuniger sollen in künftigen Releases folgen.

Ausgangsfrage beim Erstellen des HPVM war, auf welcher Ebene des Hardware- und Software-Stacks es am wirkungsvollsten wäre, heterogene Parallelität mit einem einheitlichen Interface zu versehen. Das Forschungsteam hat die verschiedenen Ebenen möglicher Abstrahierung aufgelistet, und die letztlich entwickelte Repräsentation unterstützt drei Grundfertigkeiten für das Programmieren heterogener Systeme: eine sprach- und compilerneutrale IR (Intermediate Representation), eine virtuelle ISA (Instruction Set Abstraction) und eine Grundlage für das Scheduling der Runtime.

Ebenen heterogener Parallelität und die Frage, auf welcher Ebene davon zu abstrahieren sei

(Bild: University of Illinois, HPVM-Projekt)

Laut Herausgebern hatten Vorgänger des HPVM sich stets nur auf einen dieser Aspekt gestützt. Als Compiler-IR bezweckt HPVM effektives Erstellen von Code für heterogene Systeme, als virtuelle ISA Portabilität und Performance über Systemgrenzen hinweg. Als Laufzeitumgebung ermöglicht HPVM der Ankündigung zufolge flexibles Scheduling.

Weiterführende Informationen und technische Details können Interessierte der Release-Meldung in der Mailingliste des Projekts entnehmen. Die Heterogeneous Parallel Virtual Machine verfügt auch über eine eigene HPVM-Projektseite an der University of Illinois, die vertiefende Hinweise bietet.

(sih)