Compartilhar via


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

Compila um grafo de operadores DirectML em um objeto que pode ser enviado para a GPU.

Um operador compilado representa a forma eficiente e assada de um operador adequado para execução na GPU. Um operador compilado contém o estado (como sombreadores e outros objetos) necessários para execução. Como um operador compilado implementa a interface IDMLPageable , você pode remover uma da memória de GPU, se desejar. Consulte IDMLDevice1::Remove e IDMLDevice1::MakeResident para obter mais informações.

O operador compilado não usa nem faz referência aos objetos IDMLOperator fornecidos na descrição do grafo após o retorno desse método.

Sintaxe

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

Parâmetros

desc

Tipo: DML_GRAPH_DESC*

Uma descrição do grafo a ser compilado. Consulte DML_GRAPH_DESC.

flags

Tipo: DML_EXECUTION_FLAGS

Todos os sinalizadores para controlar a execução desse operador.

riid

Tipo: REFIID

Uma referência ao GUID (identificador global exclusivo) da interface que você deseja que seja retornado em ppv. Espera-se que esse seja o GUID de IDMLCompiledOperator.

[out] ppv

Tipo: void**

Um ponteiro para um bloco de memória que recebe um ponteiro para o operador compilado. Esse é o endereço de um ponteiro para um IDMLCompiledOperator, representando o operador compilado criado.

Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

A API de grafo do operador DirectML fornece uma maneira abstrata de usar o DirectML com eficiência em vários hardwares. O DirectML aplica otimizações no nível do tensor, como escolher o layout de tensor mais eficiente com base no adaptador que está sendo usado. Ele também aplica otimizações como a remoção de operadores Join ou Split.

Recomendamos que você aplique otimizações de alto nível antes de criar um grafo DirectML. Por exemplo, fundindo operadores convolution com BatchNorm, dobramento constante e eliminação de subexpressão comum. As otimizações no otimizador de grafo do DirectML destinam-se a complementar essas otimizações independentes de dispositivo, que normalmente são tratadas genericamente por estruturas de machine learning.

Requisitos

   
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Plataforma de Destino Windows
Cabeçalho directml.h
Biblioteca DirectML.lib
DLL DirectML.dll

Confira também

IDMLDevice1