Machine Learning: TensorFlow bekommt eine neue Runtime

Die TensorFlow RunTime ist auf die direkte Codeausführung optimiert, die seit TensorFlow 2 als Standard gilt.

In Pocket speichern vorlesen Druckansicht
Machine Learning: TensorFlow bekommt eine neue Laufzeitumgebung

(Bild: vs148/Shutterstock.com)

Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Google hat eine neue Laufzeitumgebung für TensorFlow auf GitHub bereitgestellt. Die TensorFlow RunTime (TFRT) trägt den veränderten Voraussetzungen an das Machine-Learning-Framework (ML) seit dessen erster Veröffentlichung vor viereinhalb Jahren Rechnung. Das gilt zum einen für die Unterschiede bei der zugrundeliegenden Hardware und zum anderen für die Art, wie TensorFlow die Modelle verarbeitet.

Die ursprüngliche Laufzeitumgebung war für das Verarbeiten von Graphen optimiert. Anfang 2018 hat das ML-Framework in Version 1.5 als Alternative dazu die sogenannte Eager Execution zum direkten Verarbeiten von in Python verfassten TensorFlow-Befehlen eingeführt. Seit Version 2 setzt TensorFlow standardmäßig auf diese Form der Ausführung.

Die TensorFlow-APIs schicken die in der Eager Execution anfallenden Befehle direkt an die TFRT. Für die Graph Execution findet vor der Übergabe an die Laufzeitumgebung eine Umwandlung in Binaries statt, die auf die Zielplattform optimiert sind.

Die TensorFlow gibt Eager-Execution-Befehle direkt weiter und wandelt Graphen vor der Übergabe um.

(Bild: TensorFlow.org)

Zum Übersetzen in das TFRT Binary Executable Format (BEF) kommt MLIR zum Einsatz, bei der die ersten beiden Buchstaben ausnahmsweise nicht für "Machine Learning" stehen: Die Multi-Level Intermediate Representation ist ein hybrider Zwischencode für unterschiedliche Anforderungen wie eben Graphen in TensorFlow und ähnlichen Frameworks. TFRT nutzt das Typsystem von MLIR, um Tensor-spezfisiche Beschränkungen zu umgehen und stattdessen beliebige C++-Typen für die Ausführung verwenden zu können. Außerdem bietet die Runtime eine direkte Integration mit der MLIR-Compiler-Infrastruktur.

Bei der nebenläufigen Verarbeitung von Befehlen zielt die neue Runtime auf einen möglichst geringen Overhead für die Synchronisierung der Prozesse. API-Aufrufe in der Eager Execution erfolgen asynchron. TFRT ist auf eine modulare und erweiterbare Architektur ausgelegt.

Die Runtime bietet eigene Kernels für die unterschiedlichen Hardwarekomponenten wie CPU, GPU, Tensor Processing Unit (TPU) und für Mobile. Sie arbeiten unabhängig von der Host-Runtime, die für die zentrale Verteilung verantwortlich ist.

Das TensorFlow-Team will im Lauf des Jahres TFRT in den Stack des ML-Frameworks integrieren. Dabei sieht es im ersten Schritt ein Opt-in-Modell vor, um die Performance zu optimieren und auftretende Probleme zu beheben. Anschließend soll die neue Runtime standardmäßig aktiviert sein.

Weitere Details zu TFRT lassen sich dem TensorFlow-Blog entnehmen. Für das Projekt existiert zwar ein Repository auf GitHub, aber die Mitarbeit ist derzeit nur begrenzt möglich. (rme)