Partager via


MÉTHODE IDMLDevice ::CreateOperatorInitializer (directml.h)

Crée un objet qui peut être utilisé pour initialiser des opérateurs compilés.

Une fois compilé, un opérateur doit être initialisé exactement une fois sur le GPU avant de pouvoir être exécuté. L’initialiseur d’opérateur contient l’état nécessaire à l’initialisation d’un ou de plusieurs opérateurs compilés cibles.

Une fois instancié, la répartition de l’initialiseur de l’opérateur peut être enregistrée dans une liste de commandes via IDMLCommandRecorder ::RecordDispatch. Une fois l’exécution terminée sur le GPU, tous les opérateurs compilés qui sont des cibles de l’initialiseur passent à l’état initialisé.

Un initialiseur d’opérateur peut être réutilisé pour initialiser différents ensembles d’opérateurs compilés. Pour plus d’informations, consultez IDMLOperatorInitializer ::Reset .

Un initialiseur d’opérateur peut être créé sans opérateur cible. L’exécution d’un tel initialiseur est une opération sans opération. La création d’un initialiseur d’opérateur sans opérateur cible peut être utile si vous souhaitez créer un initialiseur à l’avance, mais que vous ne savez pas encore quels opérateurs il sera utilisé pour l’initialisation. IDMLOperatorInitializer ::Reset peut être utilisé pour réinitialiser les opérateurs à cibler.

Syntaxe

HRESULT CreateOperatorInitializer(
                 UINT                 operatorCount,
  [in, optional] IDMLCompiledOperator * const *operators,
                 REFIID               riid,
  [out]          void                 **ppv
);

Paramètres

operatorCount

Type : UINT

Ce paramètre détermine le nombre d’éléments du tableau passés dans le paramètre opérateurs .

[in, optional] operators

Type : IDMLCompiledOperator*

Pointeur facultatif vers un tableau constant de pointeurs IDMLCompiledOperator contenant l’ensemble d’opérateurs que cet initialiseur ciblera. Lors de l’exécution de l’initialiseur, les opérateurs cibles sont initialisés. Ce tableau peut être null ou vide, ce qui indique que l’initialiseur n’a pas d’opérateurs cibles.

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’IDMLOperatorInitializer.

[out] ppv

Type : void**

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

Valeur retournée

Type : HRESULT

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

Spécifications

Condition requise Valeur
Plateforme cible Windows
En-tête directml.h
Bibliothèque DirectML.lib
DLL DirectML.dll

Voir aussi

IDMLDevice