Die führenden Unternehmen im Bereich maschinelles Lernen haben das Projekt OpenXLA ins Leben gerufen, das auf die gemeinsame Entwicklung von Werkzeugen zur Kompilierung und Optimierung von Modellen für maschinelles Lernen abzielt. Das Projekt umfasst die Entwicklung von Tools, die die Kompilierung von Modellen, die in den Frameworks TensorFlow, PyTorch und JAX vorbereitet wurden, vereinheitlichen, sodass sie effizient auf verschiedenen GPUs und spezialisierten Beschleunigern trainiert und ausgeführt werden können. An der Zusammenarbeit in diesem Projekt sind Unternehmen wie Google, NVIDIA, AMD, Intel, Meta, Apple, Arm, Alibaba und Amazon beteiligt.
Es wird erwartet, dass durch die Zusammenarbeit führender Forschungsteams und Vertreter der Community die Entwicklung von Maschinenlern-Systemen gefördert und das Problem der Fragmentierung der Infrastruktur für verschiedene Frameworks und Hardware gelöst wird. OpenXLA ermöglicht eine effektive Unterstützung verschiedener Hardware, unabhängig davon, auf welchem Framework das Maschinenlernmodell basiert. Es wird davon ausgegangen, dass OpenXLA dazu beiträgt, die Trainingszeit von Modellen zu reduzieren, die Durchsatzrate zu erhöhen, die Latenz zu verringern, die Kosten für Rechenressourcen zu senken und die Markteinführungszeit zu verkürzen.

OpenXLA besteht aus drei Hauptkomponenten, deren Code unter der Apache 2.0 Lizenz veröffentlicht wird:
- XLA (Accelerated Linear Algebra) – ein Compiler, der es ermöglicht, Maschinenlernmodelle für die hochleistungsfähige Ausführung auf verschiedenen Hardwareplattformen zu optimieren, einschließlich GPU, CPU und spezialisierter Beschleuniger von verschiedenen Herstellern.
- StableHLO — eine Spezifikation und die grundlegende Implementierung einer Reihe von hochgradigen Operationen (HLO, High-Level Operations) zur Verwendung in Modellen maschinellen Lernens. Es fungiert als Schnittstelle zwischen Frameworks für maschinelles Lernen und Compilern, die das Modell für die Ausführung auf spezifischer Hardware transformieren. Schnittstellen zur Modellerzeugung im StableHLO-Format sind für die Frameworks PyTorch, TensorFlow und JAX vorbereitet. Als Grundlage für StableHLO wurde das Set MHLO verwendet, das um Unterstützung für Serialisierung und Versionierung erweitert wurde.
- IREE (Intermediate Representation Execution Environment) – ein Compiler und Runtime, der Modelle des maschinellen Lernens in ein universelles Zwischenformat transformiert, das auf dem MLIR-Format (Multi-Level Intermediate Representation) des LLVM-Projekts basiert. Zu den besonderen Merkmalen gehören die Möglichkeit der Vorabkompilierung (ahead-of-time), Unterstützung für Flow-Management, die Verwendung dynamischer Elemente in Modellen sowie Optimierungen für verschiedene CPU- und GPU-Architekturen mit niedrigen Overhead-Kosten.
Die Hauptvorteile des OpenXLA-Toolkits:
- Optimale Leistung erreichen, ohne sich mit spezifischem Code für bestimmte Geräte auseinanderzusetzen. Bereitstellung fertiger Optimierungen, die die Vereinfachung algebraischer Ausdrücke, eine effiziente Speicherausnutzung und eine optimierte Ausführungsplanung zur Reduzierung des Spitzenverbrauchs von Speicher und Überlastungen umfassen.
- Vereinfachung von Skalierung und Parallelisierung von Berechnungen. Der Entwickler muss lediglich Annotations für ein Subset kritischer Tensoren hinzufügen, basierend auf denen der Compiler automatisch Code für parallele Berechnungen generieren kann.
- Sicherstellung der Portabilität durch Unterstützung verschiedener Hardwareplattformen, wie z.B. AMD- und NVIDIA-GPUs, x86- und ARM-basierten CPUs, Google TPUs, AWS Trainium und Inferentia, Graphcore sowie Cerebras Wafer-Scale Engine.
- Unterstützung für die Verbindung von Erweiterungen zur Implementierung zusätzlicher Funktionen, wie die Unterstützung für das Schreiben von Primitiven des tiefen maschinellen Lernens unter Verwendung von CUDA, HIP, SYCL, Triton und anderen Programmiersprachen für parallele Berechnungen. Möglichkeit zur manuellen Anpassung von Engpässen in Modellen.
Quelle: opennet.ru
