Freigeben über


IDMLCompiledOperator-Schnittstelle (directml.h)

Stellt eine kompilierte, effiziente Form eines Operators dar, der für die Ausführung auf der GPU geeignet ist. Um dieses Objekt zu erstellen, rufen Sie IDMLDevice::CompileOperator auf. Die IDMLCompiledOperator-Schnittstelle erbt von IDMLDispatchable.

Im Gegensatz zu IDMLOperator werden kompilierte Operatoren "gebacken" und können direkt von der GPU ausgeführt werden. Nachdem ein Operator kompiliert wurde, müssen Sie ihn genau einmal initialisieren, bevor er ausgeführt werden kann. Es ist ein Fehler, einen Operator mehr als einmal zu initialisieren. Operatorinitialisierer werden verwendet, um kompilierte Operatoren zu initialisieren. Sie können IDMLCommandRecorder::RecordDispatch verwenden, um die Verteilung eines Operatorinitialisierers aufzuzeichnen, der bei Ausführung auf der GPU einen oder mehrere Operatoren initialisiert.

Zusätzlich zu Eingabe- und Ausgabe-Tensoren benötigen Operatoren möglicherweise zusätzlichen Arbeitsspeicher für die Ausführung. Dieser zusätzliche Arbeitsspeicher muss von Ihrer Anwendung in Form temporärer und persistenter Ressourcen bereitgestellt werden.

Eine temporäre Ressource ist Der Arbeitsspeicher, der nur während der Ausführung des Operators verwendet wird und nicht beibehalten werden muss, nachdem der Aufruf von IDMLCommandRecorder::RecordDispatch auf der GPU abgeschlossen wurde. Dies bedeutet, dass Ihre Anwendung die temporäre Ressource zwischen den Versendungen des kompilierten Operators freigeben oder überschreiben kann. Im Gegensatz dazu muss die persistente Ressource mindestens so lange leben, bis die letzte Ausführung des Operators auf der GPU abgeschlossen ist. Darüber hinaus ist der Inhalt der persistenten Ressource undurchsichtig und muss zwischen den Ausführungen des Operators beibehalten werden.

Die Größe der temporären und persistenten Ressourcen variiert je nach Operator. Rufen Sie IDMLDispatchable::GetBindingProperties auf, um die erforderliche Größe der persistenten und temporären Ressourcen für diesen kompilierten Operator in Bytes abzufragen. Weitere Informationen zum Binden temporärer und persistenter Ressourcen finden Sie unter IDMLBindingTable::BindPersistentResource::BindTemporaryResource und IDMLBindingTable::BindPersistentResource.

Alle Methoden auf dieser Schnittstelle sind threadsicher.

Vererbung

Die IDMLCompiledOperator-Schnittstelle erbt von der IDMLDispatchable-Schnittstelle.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile directml.h

Weitere Informationen

Bindung in DirectML

IDMLDispatchable