Share via


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

Weitere Informationen

IDMLDevice1