DirectML ist eine leistungsstarke, hardwarebeschleunigte DirectX 12-Bibliothek für maschinelles Lernen. DirectML bietet GPU-Beschleunigung für gängige maschinelle Lernaufgaben für eine breite Palette unterstützter Hardware und Treiber, einschließlich aller DirectX 12-fähigen GPUs von Anbietern wie AMD, Intel, NVIDIA und Qualcomm.
Bei eigenständiger Verwendung ist die DirectML-API eine Low-Level-DirectX-12-Bibliothek und eignet sich für Hochleistungsanwendungen mit geringer Latenz wie Frameworks, Spiele und andere Echtzeitanwendungen. Die nahtlose Interoperabilität von DirectML mit Direct3D 12 sowie der geringe Overhead und die Konformität über die Hardware hinweg machen DirectML ideal für die Beschleunigung des maschinellen Lernens, wenn sowohl eine hohe Leistung gewünscht ist als auch die Zuverlässigkeit und Vorhersagbarkeit der Ergebnisse auf der gesamten Hardware von entscheidender Bedeutung ist.
Weitere Informationen zu DirectML finden Sie in Einführung in DirectML.
Weitere Ressourcen für DirectX-Entwickler finden Sie auf der DirectX-Landingpage.
DirectML wird als Systemkomponente von Windows 10 vertrieben und ist als Teil des Windows 10-Betriebssystems (OS) in Windows 10, Version 1903 (10.0; Build 18362) und neuer verfügbar.
Ab DirectML-Version 1.4.0 ist DirectML auch als eigenständiges weiterverteilbares Paket verfügbar (siehe Microsoft.AI.DirectML), was für Anwendungen nützlich ist, die eine feste Version von DirectML verwenden möchten, oder wenn sie auf älteren Versionen von Windows 10 ausgeführt werden .
DirectML erfordert ein DirectX 12-fähiges Gerät. Fast alle im Handel erhältlichen Grafikkarten, die in den letzten Jahren auf den Markt kamen, unterstützen DirectX 12. Beispiele für kompatible Hardware sind:
DirectML stellt eine native C++ DirectX 12-API bereit. Der Header und die Bibliothek (DirectML.h/DirectML.lib) sind als Teil des weitervertreibbaren NuGet-Pakets verfügbar und auch in der Windows 10 SDK-Version 10.0.18362 oder höher enthalten.
DirectML ist als Backend in mehrere Frameworks wie Windows ML, ONNX Runtime und TensorFlow integriert.
Weitere Informationen finden Sie in den folgenden Abschnitten:
DirectML C++-Beispielcode ist unter Beispiele verfügbar.
DirectML-Python-Beispielcode ist unter Python/samples verfügbar. Die Beispiele erfordern PyDirectML, eine Open-Source-Python-Projektionsbibliothek für DirectML, die über Python/src erstellt und in einer Python-Ausführungsumgebung installiert werden kann. Weitere Einzelheiten finden Sie in der Datei Python/README.md.
DxDispatch ist eine einfache ausführbare Befehlszeilendatei zum Starten von DirectX 12-Rechenprogrammen (einschließlich DirectML-Operatoren), ohne das gesamte C++-Boilerplate schreiben zu müssen.
Windows ML (WinML) ist eine leistungsstarke, zuverlässige API für die Bereitstellung hardwarebeschleunigter ML-Inferenzen auf Windows-Geräten. DirectML stellt das GPU-Backend für Windows ML bereit.
Die DirectML-Beschleunigung kann in Windows ML mithilfe des LearningModelDevice mit einem beliebigen DirectX-DeviceKinds aktiviert werden.
Weitere Informationen finden Sie unter Erste Schritte mit Windows ML.
ONNX Runtime ist ein plattformübergreifender Inferenz- und Trainingsbeschleuniger, der mit vielen gängigen ML/DNN-Frameworks kompatibel ist, darunter PyTorch, TensorFlow/Keras, scikit-learn und mehr.
DirectML ist als optionaler Ausführungsanbieter für ONNX Runtime verfügbar, der Hardwarebeschleunigung bei der Ausführung unter Windows 10 bietet.
Weitere Informationen zu den ersten Schritten finden Sie unter Verwenden des DirectML-Ausführungsanbieters.
PyTorch mit DirectML ermöglicht das Training und die Inferenz komplexer Modelle für maschinelles Lernen auf einer Vielzahl von DirectX 12-kompatibler Hardware. Dies erfolgt über torch-directml
, ein Plugin für PyTorch.
PyTorch mit DirectML wird sowohl von den neuesten Windows-Versionen als auch vom Windows-Subsystem für Linux unterstützt und steht als PyPI-Paket zum Download zur Verfügung. Weitere Informationen zu den ersten Schritten mit torch-directml
finden Sie in unserer Windows- oder WSL 2-Anleitung auf Microsoft Learn.
TensorFlow ist eine beliebte Open-Source-Plattform für maschinelles Lernen und ein führendes Framework für das Training von Modellen für maschinelles Lernen.
Die DirectML-Beschleunigung für TensorFlow 1.15 ist derzeit für die öffentliche Vorschau verfügbar. TensorFlow auf DirectML ermöglicht das Training und die Inferenz komplexer Modelle für maschinelles Lernen auf einer Vielzahl von DirectX 12-kompatibler Hardware.
TensorFlow auf DirectML wird sowohl auf den neuesten Versionen von Windows 10 als auch auf dem Windows-Subsystem für Linux unterstützt und steht als PyPI-Paket zum Download zur Verfügung. Weitere Informationen zu den ersten Schritten finden Sie unter GPU-beschleunigtes ML-Training (docs.microsoft.com).
Wir freuen uns auf Ihre Kontaktaufnahme!
Für TensorFlow mit DirectML-Problemen, Bugs und Feedback; Für allgemeine DirectML-Probleme und Feedback reichen Sie bitte ein Problem ein oder kontaktieren Sie uns direkt unter [email protected].
Für PyTorch mit DirectML-Problemen, Bugs und Feedback; Für allgemeine DirectML-Probleme und Feedback reichen Sie bitte ein Problem ein oder kontaktieren Sie uns direkt unter [email protected].
Bei Windows ML-Problemen melden Sie bitte ein GitHub-Problem unter microsoft/Windows-Machine-Learning oder kontaktieren Sie uns direkt unter [email protected].
Bei ONNX Runtime-Problemen melden Sie bitte ein Problem unter microsoft/onnxruntime.
DirectML-Programmierhandbuch
DirectML-API-Referenz
Einführung in DirectML (Game Developers Conference '19)
Beschleunigung der GPU-Inferenz mit DirectML und DirectX 12 (SIGGRAPH '18)
Windows AI: Hardwarebeschleunigtes ML auf Windows-Geräten (Microsoft Build '20)
Gaming mit Windows ML (DirectX-Entwicklerblog)
DirectML auf der GDC 2019 (DirectX-Entwicklerblog)
DirectX ❤ Linux (DirectX-Entwicklerblog)
Dieses Projekt freut sich über Beiträge und Vorschläge. Für die meisten Beiträge müssen Sie einem Contributor License Agreement (CLA) zustimmen, in dem Sie erklären, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren, und dies auch tatsächlich tun. Weitere Informationen finden Sie unter https://cla.microsoft.com.
Wenn Sie eine Pull-Anfrage einreichen, ermittelt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen und die PR entsprechend dekorieren müssen (z. B. Beschriftung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal für alle Repos tun, die unsere CLA verwenden.
Dieses Projekt hat den Microsoft Open Source Verhaltenskodex übernommen. Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].