Machine Learning: Microsoft verbindet TensorFlow mit DirectX

Der Fork des Machine-Learning-Frameworks nutzt Hardwarebeschleunigung unter Windows und dem Windows-Subsystem für Linux.

In Pocket speichern vorlesen Druckansicht
Machine Learning: Microsoft veröffentlicht TensorFlow für DirectML
Lesezeit: 2 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Microsoft hat mit TensorFlow-DirectML eine auf DirectX 12 ausgelegte Version des von Google initiierten Machine-Learning-Frameworks (ML) veröffentlicht. Das Open-Source-Projekt ist ein Fork von TensorFlow und setzt auf der ebenfalls quelloffenen Library DirectML auf. Es läuft sowohl nativ auf Win32 als auch auf dem Windows Subsystem for Linux (WSL).

Das separat verfügbare Projekt DirectML ist eine Low Level Library, die auf Direct3D 12 aufbaut und Hardwarebeschleunigung für ML-Anwendungen bietet. Die Bibliothek abstrahiert die Ebene zur GPU und arbeitet unter anderem mit Chips von Nvidia, AMD, Intel und Qualcomm zusammen.

TensorFlow-DirectML integriert das DirectML-Backend direkt in das ML-Framework und führt dabei zum Beschleunigen "DML" als neues Device ein, das sich als Alternative für "GPU" verwenden lässt.

DirectML bietet eine sogenannte Device Runtime, die sich um die Verwaltung des Speichers kümmert, Tensoren vom und zum Host kopiert, GPU-Befehle aufnimmt und die Arbeitsabläufe zwischen Host beziehungsweise CPU und dem Device synchronisiert.

Die Runtime bietet mit DmlDevice eine Implementierung der tf.device-Klasse in TensorFlow. DmlKernelWrapper implementiert das OpKernel-Interface des ML-Frameworks, und DmlKernel bietet eine konkrete Implementierung eines TensorFlow-Operators.

Für die Verwaltung der DmlKernel-Instanzen ist der DmlKernelManager zuständig. Er legt sie auf einem Cache ab, um das Rekompilieren bereits existierender Implementierungen zu vermeiden.

TensorFlow-DirectML bietet eine Device Runtime, die die Zuordnung der ML-Prozesse an die Hardware abstrahiert.

(Bild: Microsoft)

Der DmlAllocator verwaltet den GPU-Buffer. Schließlich kümmert sich der DmlExecutionContext um das Scheduling der Aufgaben für die GPU wie das Ausführen von Operatoren und das Kopieren von Speicherbereichen.

Weitere Details lassen sich Microsofts Cloud-Blog entnehmen. Der Sourcecode von TensorFlow-DirectML ist auf GitHub zu finden.

(rme)