Interface IDMLOperatorInitializer (directml.h)
Représente un objet spécialisé dont l’objectif est d’initialiser des opérateurs compilés. Pour créer une instance de cet objet, appelez IDMLDevice::CreateOperatorInitializer. L’interface IDMLOperatorInitializer hérite d’IDMLDispatchable.
Un initialiseur d’opérateur est associé à un ou plusieurs opérateurs compilés, qui sont les cibles pour l’initialisation. Vous pouvez enregistrer l’initialisation de l’opérateur dans une liste de commandes à l’aide de IDMLCommandRecorder::RecordDispatch. Une fois l’initialisation terminée l’exécution sur le GPU, tous les opérateurs cibles passent à l’état initialisé. Vous devez initialiser tous les opérateurs une seule fois avant de pouvoir être exécutés.
Héritage
L’interface IDMLOperatorInitializer hérite de l’interface IDMLDispatchable.
Méthodes
L’interface IDMLOperatorInitializer a ces méthodes.
IDMLOperatorInitializer::Reset Réinitialise l’initialiseur pour gérer l’initialisation d’un nouvel ensemble d’opérateurs. |
Notes
Les initialiseurs d’opérateurs sont réutilisables : une fois qu’une instance a été utilisée pour initialiser un ensemble d’opérateurs, vous pouvez le réinitialiser avec un autre ensemble d’opérateurs compilés en tant que cibles.
Lors de l’exécution d’un initialiseur, les liaisons attendues sont les suivantes :
- Les entrées doivent être une liaison de tableau de mémoires tampons pour chaque opérateur cible, dans l’ordre dans lequel vous avez initialement spécifié les opérateurs lors de la création ou de la réinitialisation de l’initialiseur. Chaque liaison de tableau de mémoires tampons elle-même doit avoir une taille égale aux entrées de son opérateur respectif. Vous pouvez également spécifier NONE pour qu’une liaison ne lie aucune entrée pour l’initialisation de cet opérateur cible.
- Les sorties doivent être les ressources persistantes pour chaque opérateur cible, dans l’ordre dans lequel vous avez initialement spécifié les opérateurs lors de la création ou de la réinitialisation de l’initialiseur.
- Comme avec n’importe quel objet dispatchable (un initialiseur d’opérateur ou un opérateur compilé), l’initialiseur peut nécessiter une ressource temporaire. Appelez IDMLDispatchable::GetBindingProperties pour déterminer la taille requise de la ressource temporaire.
- Les initialiseurs d’opérateur n’ont jamais besoin de ressources persistantes. Par conséquent, l’appel de IDMLDispatchable::GetBindingProperties sur un initialiseur d’opérateur renvoie toujours une valeur PersistentResourceSize de 0.
L’initialiseur d’opérateur lui-même n’a pas besoin d’être initialisé : l’initialisation GPU s’applique uniquement aux opérateurs compilés.
Spécifications
Plateforme cible | Windows |
En-tête | directml.h |