Share via


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.0eingeführt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 Build 20348
Unterstützte Mindestversion (Server) Windows 10 Build 20348
Kopfzeile directml.h

Weitere Informationen