Поделиться через


структура DML_GRAPH_DESC (directml.h)

Описывает граф операторов DirectML, используемых для компиляции объединенного оптимизированного оператора. См . раздел IDMLDevice1::CompileGraph.

Синтаксис

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;
};

Члены

InputCount

Тип: UINT

Количество входных данных общего графа. Каждый входной граф может быть подключен к переменному количеству внутренних узлов, поэтому он может отличаться от InputEdgeCount.

OutputCount

Тип: UINT

Количество выходных данных общего графа. Каждый вывод графа может быть подключен к переменному количеству внутренних узлов, поэтому он может отличаться от OutputEdgeCount.

NodeCount

Тип: UINT

Количество внутренних узлов в графе.

Nodes

Тип: _Field_size_(NodeCount) const DML_GRAPH_NODE_DESC*

Внутренние узлы в графе.

InputEdgeCount

Тип: UINT

Количество соединений между входными данными графа и входными данными внутренних узлов в графе.

InputEdges

Тип: _Field_size_(InputEdgeCount) const DML_GRAPH_EDGE_DESC*

Массив соединений между входными данными графа и входными данными внутренних узлов в графе. Поле Type в каждом элементе должно иметь значение DML_GRAPH_EDGE_TYPE_INPUT.

OutputEdgeCount

Тип: UINT

Количество соединений между выходами графа и выходами внутренних узлов в графе.

OutputEdges

Тип: _Field_size_(OutputEdgeCount) const DML_GRAPH_EDGE_DESC*

Массив соединений между выходами графа и выходами внутренних узлов в графе. Поле Type в каждом элементе должно иметь значение DML_GRAPH_EDGE_TYPE_OUTPUT.

IntermediateEdgeCount

Тип: UINT

Количество внутренних соединений между узлами в графе.

IntermediateEdges

Тип: _Field_size_(IntermediateEdgeCount) const DML_GRAPH_EDGE_DESC*

Массив соединений между входными и выходными данными внутренних узлов в графе. Поле Type в каждом элементе должно иметь значение DML_GRAPH_EDGE_TYPE_INTERMEDIATE

Комментарии

Граф, описываемый этой структурой, должен быть направленным ациклическим графом. Необходимо определить соединение для входных и выходных данных каждого предоставленного узла, за исключением входных и выходных данных, которые являются необязательными для связанного оператора.

Узлы могут использовать операторы, созданные с помощью флага DML_TENSOR_FLAG_OWNED_BY_DML для определенных входных данных. Все входные данные оператора, использующие этот флаг, должны быть подключены к входным данным графа. Все входные данные оператора, подключенные к одному входу графа, должны использовать или пропускать этот флаг эквивалентно.

Допустимо подключать операторов, подключенные входные и выходные данные которых используют разное количество измерений, размеры и типы данных. Это означает, что большой двоичный объект данных тензора интерпретируется по-разному каждым оператором. Поле TotalTensorSizeInBytes подключенных входных и выходных данных тензора должно быть идентичным. Операторы должны считывать только области тензоров, записанные предыдущими операторами. Все области заполнения в выходных данных операции (в результате использования шагов) не гарантированно считываются операторами нижнего потока как нулевые.

Доступность

Этот API появился в версии 1.1.0DirectML.

Требования

Требование Значение
Минимальная версия клиента сборка Windows 10 20348
Минимальная версия сервера сборка Windows 10 20348
Верхняя часть directml.h

См. также раздел