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 |