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


Метод IDMLDevice1::CompileGraph (directml.h)

Компилирует граф операторов DirectML в объект, который может быть отправлен в GPU.

Скомпилированный оператор представляет эффективную форму оператора, пригодную для выполнения в GPU. Скомпилированный оператор содержит состояние (например, шейдеры и другие объекты), необходимое для выполнения. Так как скомпилированный оператор реализует интерфейс IDMLPageable , при желании вы можете исключить его из памяти GPU. Дополнительные сведения см. в разделах IDMLDevice1::Evict и IDMLDevice1::MakeResident .

Скомпилированный оператор не использует объекты IDMLOperator , предоставленные в описании графа после возврата этого метода, и не ссылается на него.

Синтаксис

HRESULT CompileGraph(
        const DML_GRAPH_DESC *desc,
        DML_EXECUTION_FLAGS  flags,
        REFIID               riid,
  [out] void                 **ppv
);

Параметры

desc

Тип: DML_GRAPH_DESC*

Описание компилируется графа. См . DML_GRAPH_DESC.

flags

Тип: DML_EXECUTION_FLAGS

Любые флаги для управления выполнением этого оператора.

riid

Тип: REFIID

Ссылка на глобальный уникальный идентификатор (GUID) интерфейса, который вы хотите вернуть в ppv. Ожидается, что это БУДЕТ GUID IDMLCompiledOperator.

[out] ppv

Тип: void**

Указатель на блок памяти, который получает указатель на скомпилированный оператор. Это адрес указателя на IDMLCompiledOperator, представляющий созданный скомпилированный оператор.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

API графа оператора DirectML предоставляет абстрактный способ эффективного использования DirectML на разных аппаратных устройствах. DirectML применяет оптимизации на уровне тензора, такие как выбор наиболее эффективного макета тензора на основе используемого адаптера. Он также применяет оптимизации, такие как удаление операторов Join или Split.

Рекомендуется применять высокоуровневые оптимизации перед созданием графа DirectML. Например, объединение операторов свертки с BatchNorm, константное свертывание и устранение общих вложенных выражений. Оптимизация в оптимизаторе графов DirectML предназначена для дополнения таких независимых от устройств оптимизаций, которые обычно обрабатываются платформами машинного обучения.

Требования

   
Минимальная версия клиента Сборка Windows 10 20348
Минимальная версия сервера Сборка Windows 10 20348
Целевая платформа Windows
Header directml.h
Библиотека DirectML.lib
DLL DirectML.dll

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

IDMLDevice1