Partager via


MÉTHODE IDMLDevice1::CompileGraph (directml.h)

Compile un graphique d’opérateurs DirectML dans un objet qui peut être distribué au GPU.

Un opérateur compilé représente la forme efficace et baked d’un opérateur adapté à l’exécution sur le GPU. Un opérateur compilé contient l’état (par exemple, les nuanceurs et d’autres objets) requis pour l’exécution. Étant donné qu’un opérateur compilé implémente l’interface IDMLPageable , vous pouvez en supprimer une de la mémoire GPU si vous le souhaitez. Pour plus d’informations, consultez IDMLDevice1::Evict et IDMLDevice1::MakeResident .

L’opérateur compilé n’utilise pas et ne référence pas les objets IDMLOperator fournis dans la description du graphique après le retour de cette méthode.

Syntaxe

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

Paramètres

desc

Type : DML_GRAPH_DESC*

Description du graphique à compiler. Voir DML_GRAPH_DESC.

flags

Type : DML_EXECUTION_FLAGS

Tous les indicateurs permettant de contrôler l’exécution de cet opérateur.

riid

Type : REFIID

Référence à l’identificateur global unique (GUID) de l’interface que vous souhaitez retourner dans ppv. Il s’agit normalement du GUID d’IDMLCompiledOperator.

[out] ppv

Type : void**

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l’opérateur compilé. Il s’agit de l’adresse d’un pointeur vers un IDMLCompiledOperator, représentant l’opérateur compilé créé.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Notes

L’API de graphe d’opérateur DirectML fournit un moyen abstrait d’utiliser DirectML efficacement sur divers matériels. DirectML applique des optimisations au niveau des tenseurs, telles que le choix de la disposition de tenseur la plus efficace en fonction de l’adaptateur utilisé. Il applique également des optimisations telles que la suppression des opérateurs Join ou Split.

Nous vous recommandons d’appliquer des optimisations générales avant de créer un graphique DirectML. Par exemple, la fusion d’opérateurs Convolution avec BatchNorm, le pliage constant et l’élimination des sous-expressions courantes. Les optimisations dans l’optimiseur de graphe de DirectML sont destinées à compléter ces optimisations indépendantes de l’appareil, qui sont généralement gérées de manière générique par les infrastructures de Machine Learning.

Spécifications

   
Client minimal pris en charge Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
Plateforme cible Windows
En-tête directml.h
Bibliothèque DirectML.lib
DLL DirectML.dll

Voir aussi

IDMLDevice1