DML_GRAPH_DESC-Struktur (directml.h)
Beschreibt ein Diagramm von DirectML-Operatoren, die zum Kompilieren eines kombinierten, optimierten Operators verwendet werden. Siehe IDMLDevice1::CompileGraph.
Syntax
struct DML_GRAPH_DESC {
UINT InputCount;
UINT OutputCount;
UINT NodeCount;
const DML_GRAPH_NODE_DESC *Nodes;
UINT InputEdgeCount;
const DML_GRAPH_EDGE_DESC *InputEdges;
UINT OutputEdgeCount;
const DML_GRAPH_EDGE_DESC *OutputEdges;
UINT IntermediateEdgeCount;
const DML_GRAPH_EDGE_DESC *IntermediateEdges;
};
Member
InputCount
Typ: UINT
Die Anzahl der Eingaben des Gesamtdiagramms. Jede Grapheingabe kann mit einer variablen Anzahl interner Knoten verbunden sein, daher kann sich diese von InputEdgeCount unterscheiden.
OutputCount
Typ: UINT
Die Anzahl der Ausgaben des Gesamtdiagramms. Jede Graphausgabe kann mit einer variablen Anzahl interner Knoten verbunden sein, daher kann sich diese von OutputEdgeCount unterscheiden.
NodeCount
Typ: UINT
Die Anzahl der internen Knoten im Diagramm.
Nodes
Typ: _Field_size_(NodeCount) const DML_GRAPH_NODE_DESC*
Die internen Knoten im Diagramm.
InputEdgeCount
Typ: UINT
Die Anzahl der Verbindungen zwischen Grapheingaben und Eingaben interner Knoten im Diagramm.
InputEdges
Typ: _Field_size_(InputEdgeCount) const DML_GRAPH_EDGE_DESC*
Ein Array von Verbindungen zwischen Grapheingaben und Eingaben interner Knoten im Diagramm. Das Feld Typ in jedem Element sollte auf DML_GRAPH_EDGE_TYPE_INPUT festgelegt werden.
OutputEdgeCount
Typ: UINT
Die Anzahl der Verbindungen zwischen Graphausgaben und Ausgaben interner Knoten im Diagramm.
OutputEdges
Typ: _Field_size_(OutputEdgeCount) const DML_GRAPH_EDGE_DESC*
Ein Array von Verbindungen zwischen Graphausgaben und Ausgaben interner Knoten im Graphen. Das Feld Typ in jedem Element sollte auf DML_GRAPH_EDGE_TYPE_OUTPUT festgelegt werden.
IntermediateEdgeCount
Typ: UINT
Die Anzahl der internen Verbindungen zwischen Knoten im Diagramm.
IntermediateEdges
Typ: _Field_size_(IntermediateEdgeCount) const DML_GRAPH_EDGE_DESC*
Ein Array von Verbindungen zwischen Ein- und Ausgaben interner Knoten im Diagramm. Das Feld Typ in jedem Element sollte auf DML_GRAPH_EDGE_TYPE_INTERMEDIATE
Hinweise
Das von dieser Struktur beschriebene Diagramm muss ein gerichteter azyklischer Graph sein. Sie müssen eine Verbindung für die Eingabe und Ausgabe jedes bereitgestellten Knotens definieren, mit Ausnahme von Ein- und Ausgängen, die für den zugeordneten Operator optional sind.
Knoten können Operatoren verwenden, die mit dem DML_TENSOR_FLAG_OWNED_BY_DML-Flag für bestimmte Eingaben erstellt wurden. Alle Operatoreingaben, die dieses Flag verwenden, müssen mit Grapheingaben verbunden sein. Alle Operatoreingaben, die mit derselben Grapheingabe verbunden sind, müssen dieses Flag äquivalent verwenden oder weglassen.
Es ist legal, Operatoren zu verbinden, deren verbundene Ein- und Ausgänge unterschiedliche Dimensionsanzahlen, Größen und Datentypen verwenden. Dies bedeutet, dass das Tensordatenblob von jedem Operator unterschiedlich interpretiert wird. Das Feld TotalTensorSizeInBytes der verbundenen Tensor-Ein- und Ausgänge muss jedoch identisch sein. Operatoren sollten nur Regionen mit Tensoren lesen, die von früheren Operatoren geschrieben wurden. Alle Auffüllbereiche in der Ausgabe eines Vorgangs (die sich aus der Verwendung von strides ergeben) werden von Downstreamoperatoren nicht garantiert als Null gelesen.
Verfügbarkeit
Diese API wurde in DirectML-Version 1.1.0
eingeführt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10 Build 20348 |
Unterstützte Mindestversion (Server) | Windows 10 Build 20348 |
Kopfzeile | directml.h |