Partager via


Interface IDMLCompiledOperator (directml.h)

Représente une forme compilée et efficace d’un opérateur adapté à l’exécution sur le GPU. Pour créer cet objet, appelez IDMLDevice ::CompileOperator. L’interface IDMLCompiledOperator hérite d’IDMLDispatchable.

Contrairement à IDMLOperator, les opérateurs compilés sont « baked » et peuvent être exécutés directement par le GPU. Une fois qu’un opérateur est compilé, vous devez l’initialiser une seule fois avant de pouvoir l’exécuter. L’initialisation d’un opérateur plusieurs fois est une erreur. Les initialiseurs d’opérateurs sont utilisés pour initialiser les opérateurs compilés. Vous pouvez utiliser IDMLCommandRecorder ::RecordDispatch pour enregistrer la distribution d’un initialiseur d’opérateur qui, lorsqu’il est exécuté sur le GPU, initialise un ou plusieurs opérateurs.

En plus des tenseurs d’entrée et de sortie, les opérateurs peuvent nécessiter une mémoire supplémentaire pour l’exécution. Cette mémoire supplémentaire doit être fournie par votre application sous la forme de ressources temporaires et persistantes.

Une ressource temporaire est une mémoire de travail qui est utilisée uniquement pendant l’exécution de l’opérateur et qui n’a pas besoin de persister une fois l’appel à IDMLCommandRecorder ::RecordDispatch terminé sur le GPU. Cela signifie que votre application peut libérer ou remplacer la ressource temporaire entre les distributions de l’opérateur compilé. En revanche, la ressource persistante doit vivre au moins jusqu’à ce que la dernière exécution de l’opérateur soit terminée sur le GPU. En outre, le contenu de la ressource persistante est opaque et doit être conservé entre les exécutions de l’opérateur.

La taille des ressources temporaires et persistantes varie selon l’opérateur. Appelez IDMLDispatchable ::GetBindingProperties pour interroger la taille requise, en octets, des ressources persistantes et temporaires pour cet opérateur compilé. Consultez IDMLBindingTable ::BindTemporaryResource et IDMLBindingTable ::BindPersistentResource pour plus d’informations sur la liaison de ressources temporaires et persistantes.

Toutes les méthodes de cette interface sont thread-safe.

Héritage

L’interface IDMLCompiledOperator hérite de l’interface IDMLDispatchable.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête directml.h

Voir aussi

Liaison dans DirectML

IDMLDispatchable