IDMLDevice1::CompileGraph-Methode (directml.h)
Kompiliert einen Graphen von DirectML-Operatoren in ein Objekt, das an die GPU verteilt werden kann.
Ein kompilierter Operator stellt die effiziente, ausgebackene Form eines Operators dar, der für die Ausführung auf der GPU geeignet ist. Ein kompilierter Operator enthält den für die Ausführung erforderlichen Zustand (z. B. Shader und andere Objekte). Da ein kompilierter Operator die IDMLPageable-Schnittstelle implementiert, können Sie eine idMLPageable-Schnittstelle bei Bedarf aus dem GPU-Speicher entfernen. Weitere Informationen finden Sie unter IDMLDevice1::Evict und IDMLDevice1::MakeResident .
Der kompilierte Operator verwendet und verweist nicht auf die IDMLOperator-Objekte , die nach der Rückgabe dieser Methode in der Graphbeschreibung bereitgestellt werden.
Syntax
HRESULT CompileGraph(
const DML_GRAPH_DESC *desc,
DML_EXECUTION_FLAGS flags,
REFIID riid,
[out] void **ppv
);
Parameter
desc
Typ: DML_GRAPH_DESC*
Eine Beschreibung des zu kompilierenden Graphen. Siehe DML_GRAPH_DESC.
flags
Typ: DML_EXECUTION_FLAGS
Alle Flags zum Steuern der Ausführung dieses Operators.
riid
Typ: REFIID
Ein Verweis auf die GUID (Globally Unique Identifier) der Schnittstelle, die in ppv zurückgegeben werden soll. Es wird erwartet, dass dies die GUID von IDMLCompiledOperator ist.
[out] ppv
Typ: void**
Ein Zeiger auf einen Speicherblock, der einen Zeiger auf den kompilierten Operator empfängt. Dies ist die Adresse eines Zeigers auf einen IDMLCompiledOperator, der den erstellten kompilierten Operator darstellt.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Die DirectML-Operatorgraph-API bietet eine abstrakte Möglichkeit, DirectML effizient über verschiedene Hardware hinweg zu verwenden. DirectML wendet Optimierungen auf Tensorebene an, z. B. die Auswahl des effizientesten Tensorlayouts basierend auf dem verwendeten Adapter. Außerdem werden Optimierungen angewendet, z. B. das Entfernen von Join- oder Split-Operatoren.
Es wird empfohlen, vor dem Erstellen eines DirectML-Graphen allgemeine Optimierungen anzuwenden. Zum Beispiel das Verschmelzen von Convolution-Operatoren mit BatchNorm, konstanter Faltung und gängiger Unterausdrucksentfernung. Die Optimierungen im Graphoptimierer von DirectML sollen solche geräteunabhängigen Optimierungen ergänzen, die in der Regel von Machine Learning-Frameworks generisch behandelt werden.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Zielplattform | Windows |
Kopfzeile | directml.h |
Bibliothek | DirectML.lib |
DLL | DirectML.dll |