структура 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.0
DirectML.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | сборка Windows 10 20348 |
Минимальная версия сервера | сборка Windows 10 20348 |
Верхняя часть | directml.h |