Microsoft hat auf der GDC 2019 am 21. März 2019 erstmals eine öffentliche Version von DirectML vorgestellt, einer GPU-Inferencing-API für Spieleentwickler. Die Ankündigung stammt von Cassie Höf, Principal Program Manager im DirectX-Team. Gedacht ist die Schnittstelle für Entwickler, die Modelle des maschinellen Lernens direkt in ihre Render-Engines einbinden wollen. Laut Microsoft bekommen sie damit mehr Kontrolle über die jeweiligen Workloads, was die Integration in bestehende Render-Pipelines erleichtern soll.
Inferenz auf jeder DirectX-12-GPU, ohne Modellpflege je Hersteller
DirectML setzt auf DirectX-12-fähigen Grafikprozessoren auf und arbeitet auf Operator-Ebene. Inferencing läuft so über die gesamte Bandbreite kompatibler Windows-Hardware, ohne dass Entwickler für einzelne GPU-Modelle gesonderte Optimierungen pflegen müssen. Für architekturspezifische Beschleunigung arbeitete Microsoft direkt mit Intel, AMD und NVIDIA zusammen. Diese Hersteller stellen über sogenannte Metacommands eigene Hardwarevorteile bereit, etwa FP16-Präzision oder dedizierte Recheneinheiten für maschinelles Lernen, die über die Treiber zugänglich gemacht werden. Anwendungen, die DirectML nicht über Metacommands ansprechen, greifen auf eine herstellerübergreifende Standardimplementierung zurück.
Zum Start gab es DirectML in der Windows Insider Preview. Eine breitere Auslieferung über Windows kündigte Microsoft für einen späteren Zeitpunkt an. Dokumentation und Beispielcode liegen in offiziellen GitHub-Repositories. Die aktuelle DirectML-Versionstabelle dokumentiert die späteren API-Versionen und ihre unterstützten Feature-Level.
Forza Horizon 3 skaliert von 1080p auf 4K, Unity steigt ein
Als Einsatzszenarien nennt Microsoft unter anderem Super Resolution, Denoising, Style Transfer, automatisiertes Testen von Spielen sowie Werkzeuge für Animation und Artwork. Allen gemeinsam ist der Bedarf an Echtzeitleistung. Ein begleitender GDC-Vortrag mit dem Titel „Deep Learning for Real-Time Rendering: Accelerating GPU Inferencing with DirectML and DirectX 12“ zeigte, wie Forza Horizon 3 von Playground Games mit DirectML in Echtzeit von 1080p auf 4K hochskaliert wird. Auf diese Weise sinkt die Zahl der nativ gerenderten Pixel.
Auf Seiten der Engine-Anbieter kündigte Unity an, DirectML in die hauseigene Inference Engine zu integrieren, die ML-Agents antreibt. Entwickler sollen dabei von Metacommands und weiteren Optimierungen profitieren, die DirectML mitbringt. Microsoft reiht die Technik damit ins DirectX-Ökosystem ein und versteht sie als Schnittstelle zwischen Render-Engines und GPU-gestütztem maschinellem Lernen. Wer den thematischen Faden weiterverfolgen will, findet Hintergründe zu Xbox und eigener ML-Upscaling-Technologie in einem gesonderten Beitrag.