Metodo IDMLDevice1::CompileGraph (directml.h)

Compila un grafico di operatori DirectML in un oggetto che può essere inviato alla GPU.

Un operatore compilato rappresenta la forma efficiente e compilata di un operatore adatto per l'esecuzione nella GPU. Un operatore compilato contiene lo stato ,ad esempio shader e altri oggetti, necessari per l'esecuzione. Poiché un operatore compilato implementa l'interfaccia IDMLPageable , è possibile rimuovere uno dalla memoria GPU se si desidera. Per altre informazioni, vedere IDMLDevice1::Evict e IDMLDevice1::MakeResident.

L'operatore compilato non usa né fa riferimento agli oggetti IDMLOperator forniti all'interno della descrizione del grafico dopo che questo metodo restituisce.

Sintassi

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

Parametri

desc

Tipo: DML_GRAPH_DESC*

Descrizione del grafico da compilare. Vedere DML_GRAPH_DESC.

flags

Tipo: DML_EXECUTION_FLAGS

Qualsiasi flag per controllare l'esecuzione di questo operatore.

riid

Tipo: REFIID

Riferimento all'identificatore univoco globale (GUID) dell'interfaccia da restituire in ppv. Si prevede che il GUID di IDMLCompiledOperator.

[out] ppv

Tipo: void**

Puntatore a un blocco di memoria che riceve un puntatore all'operatore compilato. Si tratta dell'indirizzo di un puntatore a un IDMLCompiledOperator, che rappresenta l'operatore compilato creato.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

L'API grafo dell'operatore DirectML offre un modo astratto per usare DirectML in modo efficiente in diversi hardware. DirectML applica ottimizzazioni a livello di tensore, ad esempio la scelta del layout tensore più efficiente in base all'adattatore in uso. Applica anche ottimizzazioni, ad esempio la rimozione degli operatori Join o Split.

È consigliabile applicare ottimizzazioni di alto livello prima di creare un grafico DirectML. Ad esempio, fusing degli operatori di convoluzione con BatchNorm, riduzione costante e eliminazione comune di sottoespressione. Le ottimizzazioni all'interno dell'utilità di ottimizzazione del grafico di DirectML sono destinate a integrare tali ottimizzazioni indipendenti dal dispositivo, che in genere vengono gestite genericamente dai framework di Machine Learning.

Requisiti

   
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Piattaforma di destinazione Windows
Intestazione directml.h
Libreria DirectML.lib
DLL DirectML.dll

Vedi anche

IDMLDevice1