Compartir a través de


Método IDMLDevice1::CompileGraph (directml.h)

Compila un gráfico de operadores directML en un objeto que se puede enviar a la GPU.

Un operador compilado representa la forma eficaz y horneada de un operador adecuado para su ejecución en la GPU. Un operador compilado contiene el estado (como sombreadores y otros objetos) necesarios para su ejecución. Dado que un operador compilado implementa la interfaz IDMLPageable , puede expulsar una de la memoria de GPU si lo desea. Consulta IDMLDevice1::Evict e IDMLDevice1::MakeResident para obtener más información.

El operador compilado no usa ni hace referencia a los objetos IDMLOperator proporcionados dentro de la descripción del grafo después de que este método devuelva.

Sintaxis

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

Parámetros

desc

Tipo: DML_GRAPH_DESC*

Descripción del gráfico que se va a compilar. Consulte DML_GRAPH_DESC.

flags

Tipo: DML_EXECUTION_FLAGS

Cualquier marca para controlar la ejecución de este operador.

riid

Tipo: REFIID

Referencia al identificador único global (GUID) de la interfaz que desea devolver en ppv. Se espera que sea el GUID de IDMLCompiledOperator.

[out] ppv

Tipo: void**

Puntero a un bloque de memoria que recibe un puntero al operador compilado. Esta es la dirección de un puntero a un IDMLCompiledOperator, que representa el operador compilado creado.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

La API de grafos de operadores de DirectML proporciona una manera abstracta de usar DirectML de forma eficaz en todo el hardware diverso. DirectML aplica optimizaciones de nivel de tensor, como elegir el diseño de tensor más eficaz en función del adaptador que se usa. También aplica optimizaciones como la eliminación de operadores Join o Split.

Se recomienda aplicar optimizaciones de alto nivel antes de crear un grafo de DirectML. Por ejemplo, la fusión de operadores de convolución con BatchNorm, plegado constante y eliminación de subexpresión común. Las optimizaciones dentro del optimizador de grafos de DirectML están diseñadas para complementar estas optimizaciones independientes del dispositivo, que normalmente se controlan genéricamente mediante marcos de aprendizaje automático.

Requisitos

   
Cliente mínimo compatible Compilación 20348 de Windows 10
Servidor mínimo compatible Compilación 20348 de Windows 10
Plataforma de destino Windows
Encabezado directml.h
Library DirectML.lib
Archivo DLL DirectML.dll

Consulte también

IDMLDevice1