structure DML_GRAPH_DESC (directml.h)
Décrit un graphique d’opérateurs DirectML utilisés pour compiler un opérateur combiné et optimisé. Consultez IDMLDevice1 ::CompileGraph.
Syntaxe
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;
};
Membres
InputCount
Type : UINT
Nombre d’entrées du graphique global. Chaque entrée de graphe peut être connectée à un nombre variable de nœuds internes, ce qui peut être différent d’InputEdgeCount.
OutputCount
Type : UINT
Nombre de sorties du graphique global. Chaque sortie de graphe peut être connectée à un nombre variable de nœuds internes, ce qui peut être différent de OutputEdgeCount.
NodeCount
Type : UINT
Nombre de nœuds internes dans le graphique.
Nodes
Type : _Field_size_(NodeCount) const DML_GRAPH_NODE_DESC*
Nœuds internes dans le graphique.
InputEdgeCount
Type : UINT
Nombre de connexions entre les entrées de graphe et les entrées de nœuds internes dans le graphe.
InputEdges
Type : _Field_size_(InputEdgeCount) const DML_GRAPH_EDGE_DESC*
Tableau de connexions entre les entrées de graphe et les entrées de nœuds internes dans le graphe. Le champ Type dans chaque élément doit être défini sur DML_GRAPH_EDGE_TYPE_INPUT.
OutputEdgeCount
Type : UINT
Nombre de connexions entre les sorties de graphe et les sorties de nœuds internes dans le graphe.
OutputEdges
Type : _Field_size_(OutputEdgeCount) const DML_GRAPH_EDGE_DESC*
Tableau de connexions entre les sorties de graphe et les sorties de nœuds internes dans le graphe. Le champ Type de chaque élément doit être défini sur DML_GRAPH_EDGE_TYPE_OUTPUT.
IntermediateEdgeCount
Type : UINT
Nombre de connexions internes entre les nœuds dans le graphique.
IntermediateEdges
Type : _Field_size_(IntermediateEdgeCount) const DML_GRAPH_EDGE_DESC*
Tableau de connexions entre les entrées et les sorties de nœuds internes dans le graphique. Le champ Type de chaque élément doit être défini sur DML_GRAPH_EDGE_TYPE_INTERMEDIATE
Remarques
Le graphe décrit par cette structure doit être un graphe acyclique dirigé. Vous devez définir une connexion pour l’entrée et la sortie de chaque nœud fourni, à l’exception des entrées et sorties facultatives pour l’opérateur associé.
Les nœuds peuvent utiliser des opérateurs qui ont été créés à l’aide de l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML pour certaines entrées. Toutes les entrées d’opérateur utilisant cet indicateur doivent être connectées aux entrées de graphique. Toutes les entrées d’opérateur connectées à la même entrée de graphe doivent utiliser ou omettre cet indicateur de manière équivalente.
Il est légal de connecter des opérateurs dont les entrées et sorties connectées utilisent différents nombres de dimensions, tailles et types de données. Cela implique que l’objet blob de données tensoriels est interprété différemment par chaque opérateur. Le champ TotalTensorSizeInBytes des entrées et sorties de tenseurs connectés doit toutefois être identique. Les opérateurs doivent lire uniquement les régions des tenseurs écrits par des opérateurs précédents. Les régions de remplissage dans la sortie d’une opération (résultant de l’utilisation de foulées) ne sont pas garanties d’être lues comme zéro par les opérateurs de flux descendant.
Disponibilité
Cette API a été introduite dans la version 1.1.0
de DirectML .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | directml.h |