Share via


IDMLOperatorInitializer-Schnittstelle (directml.h)

Stellt ein spezialisiertes Objekt dar, dessen Zweck darin besteht, kompilierte Operatoren zu initialisieren. Um eine Instanz dieses Objekts zu erstellen, rufen Sie IDMLDevice::CreateOperatorInitializer auf. Die IDMLOperatorInitializer-Schnittstelle erbt von IDMLDispatchable.

Ein Operatorinitialisierer ist einem oder mehreren kompilierten Operatoren zugeordnet, die die Ziele für die Initialisierung sind. Sie können die Operatorinitialisierung mithilfe von IDMLCommandRecorder::RecordDispatch in einer Befehlsliste aufzeichnen. Wenn die Initialisierung die Ausführung auf der GPU abgeschlossen hat, werden alle Zieloperatoren in den initialisierten Zustand versetzt. Sie müssen alle Operatoren genau einmal initialisieren, bevor sie ausgeführt werden können.

Vererbung

Die IDMLOperatorInitializer-Schnittstelle erbt von der IDMLDispatchable-Schnittstelle.

Methoden

Die IDMLOperatorInitializer-Schnittstelle verfügt über diese Methoden.

 
IDMLOperatorInitializer::Reset

Setzt den Initialisierer zurück, um die Initialisierung einer neuen Gruppe von Operatoren zu verarbeiten.

Bemerkungen

Operatorinitialisierer sind wiederverwendbar: Sobald eine Instanz zum Initialisieren einer Reihe von Operatoren verwendet wurde, können Sie sie mit einem anderen Satz kompilierter Operatoren als Ziele zurücksetzen.

Beim Ausführen eines Initialisierers sind die erwarteten Bindungen wie folgt:

  • Eingaben sollten eine Pufferarraybindung für jeden Zieloperator in der Reihenfolge sein, in der Sie die Operatoren beim Erstellen oder Zurücksetzen des Initialisierers ursprünglich angegeben haben. Jede Pufferarraybindung selbst sollte eine Größe aufweisen, die den Eingaben des jeweiligen Operators entspricht. Alternativ können Sie NONE für eine Bindung angeben, um keine Eingaben für die Initialisierung dieses Zieloperators zu binden.
  • Ausgaben sollten die persistenten Ressourcen für jeden Zieloperator in der Reihenfolge sein, in der Sie die Operatoren beim Erstellen oder Zurücksetzen des Initialisierers ursprünglich angegeben haben.
  • Wie bei jedem verteilbaren Objekt (einem Operatorinitialisierer oder einem kompilierten Operator) benötigt der Initialisierer möglicherweise eine temporäre Ressource. Rufen Sie IDMLDispatchable::GetBindingProperties auf, um die erforderliche Größe der temporären Ressource zu ermitteln.
  • Operatorinitialisierer erfordern keine persistenten Ressourcen. Daher gibt das Aufrufen von IDMLDispatchable::GetBindingProperties für einen Operatorinitialisierer immer den PersistentResourceSize-Wert 0 zurück.

Der Operatorinitialisierer selbst muss nicht initialisiert werden. Die GPU-Initialisierung gilt nur für kompilierte Operatoren.

Anforderungen

   
Zielplattform Windows
Kopfzeile directml.h

Weitere Informationen

Bindung in DirectML

IDMLDispatchable